根据“方法参考”的文档,可以创建:
引用特定类型的任意对象的实例方法
链接:https://docs.oracle.com/javase/tutorial/java/javaOO/methodreferences.html
我写了以下代码:
public class App {
public static void main(String[] args) {
Function<String, String> f1 = String::toString;
Function<String, String> f2 = App::toString; // Compilation error
}
public String toString() {
return "test";
}
}
然而,使用类“String”的“方法引用”编译得很好,而使用我自己的App类的相同“方法引用”编译不正确。
有人能说出原因吗?
答案 0 :(得分:2)
对于类方法引用,第一个Function类型参数是类的类型,第二个是函数的返回类型。尝试:
Function<App, String> f2 = App::toString;
答案 1 :(得分:1)
应为Function<App, String> f2
答案 2 :(得分:0)
我认为你要找的是Function<App, String> f2
。