如何将字符串映射到未知返回类型的java方法引用?

时间:2019-05-14 22:31:50

标签: java

我想将String映射到方法引用。问题在于此方法可以返回voidboolean

我正在使用@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)),这些方法更改了对象的valueboolean方法( greaterThan(int)lessThan(int))返回值。

MethodParser接口只是我发现的将String映射到方法引用的一种方法。我使用它将给定的String映射到其他地方已经存在的方法。

注意:我尝试过的一些类似问题(这些问题对我不起作用):

1 个答案:

答案 0 :(得分:0)

void创建一个方法,为boolean创建一个方法,该方法包括一个告诉何时使用哪种方法的条件。 我不知道任何可能有2个返回类型的方法。 您可以使用POJO类实例通过分组返回多个值。