我是靠谱客的博主 拼搏热狗,最近开发中收集的这篇文章主要介绍java 映射函数_如何将字符串映射到Java中的函数?,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

目前,我有一组Java类来实现

Processor

接口,意味着它们都有一个

processRequest(String key)

方法。我们的想法是每个班级都有几个(比如,<10)成员

Strings

,并且每一个都通过

processRequest

方法,如:

class FooProcessor implements Processor

{

String key1 = "abc";

String key2 = "def";

String key3 = "ghi";

// and so on...

String processRequest(String key)

{

String toReturn = null;

if (key1.equals(key)) toReturn = method1();

else if (key2.equals(key)) toReturn = method2();

else if (key3.equals(key)) toReturn = method3();

// and so on...

return toReturn;

}

String method1() { // do stuff }

String method2() { // do other stuff }

String method3() { // do other other stuff }

// and so on...

}

你明白了。

这对我来说很好,但是现在我需要一个从键到函数的运行时可访问的映射;不是每个函数

事实上

返回一个字符串(一些返回void),我需要动态访问每个类中每个函数的返回类型(使用反射),每个类都有一个键。我已经有一个经理知道所有的钥匙,但是

从键到函数的映射。

我的第一反应是用

if-else

带有

Map

就像我在javascript中所做的那样。但是,Java不支持一流的功能,所以我运气不好。我可能会挖一个第三方库,让我使用一流的功能,但我还没有看到任何,我怀疑我需要一个完整的新库。

我还想把这些

String

键到数组中并使用反射按名称调用方法,但我看到此方法的两个缺点:

我的键必须与方法命名相同,或者以一种特定的、一致的方式命名,这样就很容易将它们映射到方法名。

这似乎比

如果不是的话

我现在有陈述。效率是一个值得关注的问题,因为这些方法经常被调用,我希望最小化不必要的开销。

TL;医生:

我正在寻找一个干净的,最小开销的方法来映射

某种程度上

Function

我可以调用的对象(类似于)

getReturnType()

在。我不介意用第三方图书馆,如果它

真正地

符合我的需要。我也不介意使用反射,尽管我强烈希望每次执行方法查找时都避免使用反射-可能使用一些结合了

Map

带着反思。

想一个好的方法得到我想要的?干杯!

最后

以上就是拼搏热狗为你收集整理的java 映射函数_如何将字符串映射到Java中的函数?的全部内容,希望文章能够帮你解决java 映射函数_如何将字符串映射到Java中的函数?所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(52)

评论列表共有 0 条评论

立即
投稿
返回
顶部