2024/3/30 21點的lambda表示式

redzhengtao發表於2024-03-30

package com.atguigu;

interface MyInterface{
    int sum(int i,int j);
}
interface Myhaha{
    int haha();
}
//檢查註解,幫我們快速檢查我們寫的介面是否函式式介面
@FunctionalInterface
interface Myhehe{
    int hehe(int i);
}


//1.自己寫實現類
class MyInetfaceImpl implements MyInterface{
    @Override
    public int sum(int i,int j){
        return i+j;
    }
}

public class Lambda {
    public static void main(String[] args) {
        //1.自己建立實現類物件
        MyInterface my=new MyInetfaceImpl();
        System.out.println(my.sum(2,3));

        //2、建立匿名實現類物件
        MyInterface myInterface = new MyInterface() {
            @Override
            public int sum(int i, int j) {
                return i+j;
            }
        };
        System.out.println(myInterface.sum(1,2));


        //3、lambda表示式:語法糖  引數列表  + 箭頭 + 方法體
        MyInterface myInterface1=(x,y)->{return x*y;};
        System.out.println(myInterface1.sum(2,3));

        //引數位置最少情況
        Myhaha myhaha=()->{return 1;};

        System.out.println(myhaha.haha());

        Myhehe myhehe=y->{return y*y;};
        System.out.println(myhehe.hehe(4));

        Myhehe myhehe1=y->y+1;
        System.out.println(myhehe1.hehe(114514));

        //完整寫法如上:
        //簡化寫法:
        //1)、引數型別可以不寫,只寫(引數名),引數變數名隨意定義;
        //    參數列最少可以只有一個 (),或者只有一個引數名;
        //2、方法體如果只有一句話,{} 可以省略

        Myhehe  hehe3 = y -> y + 1;
        System.out.println(hehe3.hehe(7));
        //以上Lambda表示式簡化了例項的建立。


        //總結:
        // 1、Lambda表示式: (參數列) -> {方法體}
        // 2、分辨出你的介面是否函式式介面。 函式式介面就可以lambda簡
    }
}

重點:函數語言程式設計
可能在開發crud場景用處不大,在大資料更改方法中重要

相關文章