编程语言
首页 > 编程语言> > java-引用特定类型的任意对象的实例方法……无法与自定义类一起使用?

java-引用特定类型的任意对象的实例方法……无法与自定义类一起使用?

作者:互联网

根据有关“方法参考”的文档,可以创建:

Reference to an instance method of an arbitrary object of a particular type

链接: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类的相同“方法参考”不能很好地编译.

有人可以告诉为什么吗?

解决方法:

对于类方法引用,第一个Function类型参数是类的类型,第二个是函数的返回类型.尝试:

Function<App, String> f2 = App::toString;

标签:java-8,java
来源: https://codeday.me/bug/20191121/2048148.html