编译此表达式的目标类型的问题必须是功能接口

时间:2018-02-21 14:26:55

标签: lambda java-8

我想要编译但得到上述错误。基本上这就是我所拥有的。

java.lang.Object obj = Account::getTestaccount;

Account是一个具有使用setter和getter方法声明的TestAccount对象的类。

有人可以告诉我为什么会发生错误。谢谢。

1 个答案:

答案 0 :(得分:4)

lambda表达式的目标类型或方法引用必须functional interface,即任何具有SAM(单一抽象方法)的接口

您的代码无效,因为java.lang.Object不是功能界面。

查看您提供的代码段,似乎您正在寻找Supplier功能界面或Supplier的特定专业化。

Java 8提供了丰富的功能接口系列,可在此处找到:package java.util.function