普通方法引用
public class Main {
public static void main(String[] args) {
//匿名內部類
Runnable runnable = new Runnable() {
@Override
public void run() {
System.out.println("hello world!");
}
};
Thread thread = new Thread(runnable);
thread.start();
}
}
需要使用函數式接口的對象的地方可以使用lambda表達式:
public static void main(String[] args) {
//1.
Runnable runnable = () -> {
System.out.println("hello world!");
};
//2.
Thread thread = new Thread(() -> {
System.out.println("hello world!");
});
thread.start();
}
有時已經有現成的方法可以完成你想要傳遞給其他代碼的某個動作,此時可以直接將該方法傳遞:
public class Main {
public static void main(String[] args) {
//1.
Runnable runnable = Main::myRunnable;
//2.
Thread thread = new Thread(Main::myRunnable);
thread.start();
}
//靜態方法
public static void myRunnable() {
System.out.println("hello world!");
}
}
public class Main {
public static void main(String[] args) {
//創建實例
Main main = new Main();
//1.
Runnable runnable = main::myRunnable;
//2.
Thread thread = new Thread(main::myRunnable);
thread.start();
}
//非靜態方法
public void myRunnable() {
System.out.println("hello world!");
}
}