"Runnable::run" - 这是如何创建 Executor 实例的?
"Runnable::run" - How is this creating an Executor instance?
我正在开发一个项目,其中使用以下行创建测试执行器成员变量实例:
private Executor executor = Runnable::run;
代码运行并编译,但我不明白 Runnable::run
如何创建 Executor
的实例,因为两者是不同的接口。
有谁能解释一下吗?特别是:
- Runnable的实现从何而来?
- 如何分配给
Executor
实现(因为 Executor
是不同的接口)?
- 创建了什么样的
Executor
?例如单线程或池化
- Java8之前怎么写?
谢谢。
Executor
是一个 @FunctionalInterface
:
public interface Executor {
void execute(Runnable command);
}
您可以像这样重写它以便更好地理解它:
Executor executor = (Runnable r) -> r.run(); // or Runnable::run
我正在开发一个项目,其中使用以下行创建测试执行器成员变量实例:
private Executor executor = Runnable::run;
代码运行并编译,但我不明白 Runnable::run
如何创建 Executor
的实例,因为两者是不同的接口。
有谁能解释一下吗?特别是:
- Runnable的实现从何而来?
- 如何分配给
Executor
实现(因为Executor
是不同的接口)? - 创建了什么样的
Executor
?例如单线程或池化 - Java8之前怎么写?
谢谢。
Executor
是一个 @FunctionalInterface
:
public interface Executor {
void execute(Runnable command);
}
您可以像这样重写它以便更好地理解它:
Executor executor = (Runnable r) -> r.run(); // or Runnable::run