我想映射 String
到方法引用。问题是这个方法可以返回 void
或boolean
.
我正在使用@FunctionalInterface
但似乎它只能有一种方法(我需要一个用于 void
和一个用于 boolean
?)。
下面是我到目前为止的代码。注释行是我想做的。
@FunctionalInterface
interface MethodParser <T1, T2> {
public void apply(T1 arg1, T2 arg2);
}
public class OperatorParser {
public static Map<String, MethodParser> INTEGER = new HashMap<String, MethodParser>();
public static void buildInteger() {
MethodParser<Integer_, Integer> plus = (pObj, pValue) -> pObj.plus(pValue);
MethodParser<Integer_, Integer> minus = (pObj, pValue) -> pObj.minus(pValue);
// MethodParser<Integer_, Integer> grThan = (pObj, pValue) -> pObj.greaterThan(pValue);
// MethodParser<Integer_, Integer> lessTh = (pObj, pValue) -> pObj.lessThan(pValue);
OperatorParser.INTEGER.put("+", plus);
OperatorParser.INTEGER.put("-", minus);
// OperatorParser.INTEGER.put(">", grThan);
// OperatorParser.INTEGER.put("<", lessTh);
}
}
对象Integer_
表示一个整数,并具有 void 方法( plus(int)
和 minus(int)
)来更改 value
对象和 boolean
返回值的方法( greaterThan(int)
和 lessThan(int)
)。
MethodParser
接口(interface)只是我发现将字符串映射到方法引用的一种方法。我用它来将给定的字符串映射到其他地方已经存在的方法。
注意:我尝试过的一些类似问题(这些对我不起作用):
最佳答案
为void
创建一个方法,为boolean
创建一个方法,以及一个包含告诉何时使用其中之一的条件的方法。
我不知道有什么方法可以有两种返回类型。
您可以使用 POJO 类实例通过分组返回多个值。
关于java - 如何将字符串映射到未知返回类型的java方法引用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56139469/