所以我早些时候做了一些编码,发现一个函数的签名只需要Function<FooClass, String>
,我可以为 FooClass 的函数传递一个方法,它产生一个字符串(见下面的例子)。
所以我发现 java 支持它,我的意思是..它可以编译,
public static class Foo {
public String produceString() {
return "Hello world!";
}
}
public static String test(Function<Foo, String> produceString) {
return produceString.apply(new Foo());
}
public static void main(String[] args) {
// WEIRD CODE BELOW!! Here's the method reference:
String output = test(Foo::produceString);
System.out.println(output);
// Outputs "Hello world!"
}
我的问题是:java 到底是怎么做到的!?
有没有人解释为什么这有效?
婷婷同学_
相关分类