我正在开发一个项目,其中以下行用于创建测试Executor成员变量实例:
private Executor executor = Runnable::run;
代码运行并编译但我不明白Runnable::run
如何创建Executor
的实例,因为两者都是不同的接口。
有人能够解释吗?特别是:
Executor
实施(因为Executor
是一个不同的界面)?Executor
?例如单线程或汇集感谢。
答案 0 :(得分:4)
Executor
是@FunctionalInterface
:
public interface Executor {
void execute(Runnable command);
}
你可以像这样重写它,以便更好地理解它:
Executor executor = (Runnable r) -> r.run(); // or Runnable::run