lambda 表達式的基本語法及注意事項代碼例子

 /**
         * lambda表達式語法的介紹
         */

        /**
         * 基本語法解釋
         *
         * [接口聲明] = (參數) -> { 執行代碼塊 };
         *
         * 1,聲明 :就是和Lambda表達式綁定的接口類型
         *
         * 2.參數:包含一對小括號,和綁定的接口中的抽象方法中的參數個數及順序一致
         *
         * 3.操作符: ->
         *
         * 4.執行的代碼塊: 包含在一對大括號中,出現在操作符右側
         */

        Ilambda1 i1 = () -> {
            System.out.println("test方法");
        };
        i1.test();

        //這裏需要注意的是。如果在執行方法體中只有一行代碼,則可以 省略掉大括號
        Ilambda1 i2 = () -> System.out.println("hehefanfa");

        i2.test();;

        //帶參數的lambda表達式的演示
        Ilambda2 i21 = (String n,int a) -> {
            System.out.println(n+" say : my age is "+a);
        };

        i21.test("jack",12);

        //這裏演示的是參數,JVM在運行時可以自動識別參數類型,可以不用寫參數類型
        Ilambda2 i22 = (n,a) -> {
            System.out.println(n+" 說 ,今天 "+a);
        };

        i22.test("hehe",35);

        //演示帶參數,帶返回值的lambda表達式
        Ilambda3 i31 = (x,y) -> {
            int z = x+y;
            return z;
        };

        System.out.println(i31.test(1,2));

        //這裏需要注意的,如果執行代碼塊只有一行代碼,可以省略return關鍵字
        Ilambda3 i32 = (x,y) -> x + y;
        System.out.println(i32.test(3,2));

        /**
         * 1 lambda表達式必須和接口進行綁定
         *
         * 2.lambda表達式可以附帶0到n個參數,括號中的參數類型可以不用指定,jvm在運行時,會自動根據綁定的抽象方法中的參數類型推導出對應的參數類型
         *
         * 3.lambda表達式的返回值,如果代碼塊只有一行,並且沒有大括號,則不用寫return關鍵字,單行代碼的執行結果會自動返回;如果添加了大括號,或者有多行代碼,則必須通過 return 關鍵字進行返回
         */



 /**
     * 無參數,無返回值的接口聲明
     */
    interface Ilambda1{
        void test();
    }

    /**
     * 帶參數,無返回值的接口的聲明
     */
    interface Ilambda2{
        void test(String  name,int age);
    }

    /**
     * 帶參數,帶返回值的接口聲明
     */
    interface Ilambda3{
        int test (int x,int y);
    }




 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章