java 映射函数_如何将字符串映射到Java中的函数?

当前,我有一堆实现Processor接口的Java类,这意味着它们都具有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...

}

你明白了。

这对我来说很好,但是现在我需要一个从键到函数的运行时可访问的映射。并非每个函数 实际上都

返回一个String(有些返回void),并且我需要动态地访问每个具有键的类中每个函数的返回类型(使用反射)。我已经有一位经理,他了解所有键,但是 不

知道从键到功能的映射。

我的第一个直觉是用if-else语句代替此映射Map

Function>,就像我在Javascript中所做的那样。但是,Java不支持一流的功能,因此我很不走运。我可能会挖掘出一个第三方库,该库可以让我使用一流的功能,但是还没有看到,我怀疑是否需要一个全新的库。

我还考虑过将这些String键放入数组中并使用反射按名称调用方法,但是我看到此方法有两个缺点:

我的键必须与方法命名相同-或以特定的一致方式命名,以便轻松将它们映射到方法名称。

这似乎比if-else我现在的陈述要慢。效率是一个令人担忧的问题,因为这些方法将经常被频繁调用,并且我想将不必要的开销降至最低。

TL;

DR:我正在寻找一种干净的,开销最小的方法来将a映射String到Function我可以调用和调用(类似)的某种对象getReturnType()。如果

真正 适合我的需求,我不介意使用第三方库。我也不介意使用反射,尽管我强烈希望避免每次执行方法查找时都使用反射-

也许使用结合了Map反射和的某种缓存策略。

对获得我想要的好方法的想法?干杯!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值