1. 程式人生 > 其它 >Java8的Lambda和方法引用

Java8的Lambda和方法引用

當:

1、成員方法或構造方法中的形參是介面(Interface)

2、該介面為函式式介面,即抽象方法只有一個

在方法實現的時候可以採用的方式有:

1、傳統的方式實現(也適用於非函式式介面)

建立該介面的匿名內部類並重寫介面方法

點選檢視程式碼
        //方式一
        Thread lambda1 = new Thread(new Runnable() {
            @Override
            public void run() {
                RunnableImpl r1 = new RunnableImpl();
                r1.sellTick();

            }
        }
        );
2、lambda表示式

使用lambda表示式要點即  採用()->{} 的方式,注意對lambda表示式簡化後的理解

點選檢視程式碼
        //方式二
        Thread lambda2 = new Thread(() -> {
            r1.sellTick();
        }
        );

        //方式二改寫
        Thread lambda3 = new Thread(() -> r1.sellTick());

3、使用方法引用

前提是有一個已經實現的方法,且該方法滿足介面抽象方法的形參和返回值。可以採用方法引用的方式傳入介面,極大簡化程式碼

點選檢視程式碼
        //方式三
        Thread thread = new Thread(new RunnableImpl()::sellTick);

總結:無論是Lambda還是方法引用,核心就是必須滿足介面方法中的形參和返回值。

注意:採用方法引用的時候,介面方法無返回值,則方法引用中有無返回值都可以實現編譯執行;