Thread構(gòu)造方法如下
public Thread(Runnable target) {
init(null, target, "Thread-" + nextThreadNum(), 0);
}
Runnable 是一個(gè)接口
@FunctionalInterface
public interface Runnable {
public abstract void run();
}
調(diào)用對比:
public class App {
public static void main(String[] args) {
//default
new Thread(new Task()).start();
//匿名內(nèi)部類
new Thread(new Runnable() {
@Override
public void run() {
System.out.println("002");
}
}).start();
//Lambda表達(dá)式
new Thread(() -> {
System.out.println("003");
}).start();
}
}
class Task implements Runnable {
@Override
public void run() {
System.out.println("001");
}
}
所以,不是所有使用匿名內(nèi)部類的地方都可以使用Lambda表達(dá)式代替。
ref: https://www.geeksforgeeks.org/difference-between-anonymous-inner-class-and-lambda-expression/