【发布时间】:2017-12-19 04:02:04
【问题描述】:
我正在学习 Java 8 中的 lambda 表达式。有人可以向我解释如何将 lambda 表达式与只有一种方法的抽象类一起使用(如果可能的话)?
例如,这是抽象类:
public abstract class ClassA {
public abstract void action();
}
我还有另一个类,它在其构造函数中包含ClassA 的实例:
public ClassB {
public ClassB(String text, ClassA a){
//Do stuff
}
}
所以我想知道如何写这样的东西:
ClassB b = new ClassB("Example", new ClassA(() -> System.out.println("Hello")));
显然该语句不起作用,但有没有办法在这里使用 lambda 表达式?如果有,我做错了什么?
【问题讨论】:
-
没有。 Lambda 只能用于实现功能接口。
-
您可能希望使用内置的
Runnable而不是ClassA。