Java8的Lambda和方法引用
阿新 • • 發佈:2022-05-13
當:
1、成員方法或構造方法中的形參是介面(Interface)
2、該介面為函式式介面,即抽象方法只有一個
在方法實現的時候可以採用的方式有:
1、傳統的方式實現(也適用於非函式式介面)
建立該介面的匿名內部類並重寫介面方法
點選檢視程式碼
//方式一 Thread lambda1 = new Thread(new Runnable() { @Override public void run() { RunnableImpl r1 = new RunnableImpl(); r1.sellTick(); } } );
使用lambda表示式要點即 採用()->{} 的方式,注意對lambda表示式簡化後的理解
點選檢視程式碼
//方式二
Thread lambda2 = new Thread(() -> {
r1.sellTick();
}
);
//方式二改寫
Thread lambda3 = new Thread(() -> r1.sellTick());
3、使用方法引用
前提是有一個已經實現的方法,且該方法滿足介面抽象方法的形參和返回值。可以採用方法引用的方式傳入介面,極大簡化程式碼
點選檢視程式碼
//方式三
Thread thread = new Thread(new RunnableImpl()::sellTick);
總結:無論是Lambda還是方法引用,核心就是必須滿足介面方法中的形參和返回值。
注意:採用方法引用的時候,介面方法無返回值,則方法引用中有無返回值都可以實現編譯執行;