如何使用泛型作为参数来接收以后应用特定方法的函数?

时间:2018-10-24 13:27:04

标签: java

我正在尝试这样做

首先,我有一个像这样的界面:

public void doSomething (String input, MyClass myMethod);

在实施过程中,我拥有

public void doSomething (String input, MyClass myMethod){
    myMethod.mySpecificMethod(input2);
}

所以现在我正在检查java.util.function类,发现有一个FunctionalInterface函数。

到目前为止,我只是尝试用此函数替换MyClass myMethod,但是我确定还有更好的方法(这也不起作用)。

任何想法如何? 以后使用泛型时,我无法调用方法,是否应该将泛型转换为所需的类?

1 个答案:

答案 0 :(得分:3)

根据您的示例,看来doSomething需要一个接受String并且不返回任何内容的方法。这适合Consumer<String>界面:

public void doSomething (String input, Consumer<String> consumer){
    consumer.accept(input);
}

然后用以下命令调用它:

doSomething ("some string", myMethod::mySpecificMethod);

其中myMethodMyClass的实例。