我想将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_
代表整数,并且具有无效的方法(plus(int)
和minus(int)
),这些方法更改了对象的value
和boolean
方法( greaterThan(int)
和lessThan(int)
)返回值。
MethodParser
接口只是我发现的将String映射到方法引用的一种方法。我使用它将给定的String映射到其他地方已经存在的方法。
注意:我尝试过的一些类似问题(这些问题对我不起作用):
答案 0 :(得分:0)
为void
创建一个方法,为boolean
创建一个方法,该方法包括一个告诉何时使用哪种方法的条件。
我不知道任何可能有2个返回类型的方法。
您可以使用POJO类实例通过分组返回多个值。