溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Lambda基礎語法

發布時間:2020-08-01 21:22:20 來源:網絡 閱讀:559 作者:孤魂1996 欄目:編程語言

Lambda表達式的基本語法

java8中引入一個新的操作符“->”,該操作符稱為箭頭操作符或Lambda操作符。
操作符將Lambda表達式拆分為左右兩部分:
左側:Lambda表達式的參數列表
右側:Lambda表達式中所需執行的功能,稱為Lambda體

語法格式一:無參數,無返回值

() -> System.out.println("Hello e路縱橫開發團隊");

@Test
    public void test1(){

        int num = 0;
        //匿名內部類
        Runnable r = new Runnable() {
            @Override
            public void run() {
                System.out.println("Hello World!" + num);//在匿名內部類中應用了同級別的變量時,在jdk1.7以前,變量必須申明為final,在jdk1.8中,默認加上final
            }
        };
        r.run();

        System.out.println("---------------------------------------");

        //Lambda表達式
        Runnable r1 = () -> System.out.println("Hello e路縱橫開發團隊" + num);
        r1.run();
    }
語法格式二:有一個參數,無返回值

(x) -> System.out.prinrln(x);

@Test
    public void test2(){
        Consumer<String> consumer = (x) -> System.out.println(x);
        consumer.accept("e路縱橫");
    }
語法格式三:若只有一個參數,小括號可以省略不寫

x -> System.out.println(x);

@Test
    public void test3(){
        Consumer<String> consumer = x -> System.out.println(x);
        consumer.accept("e路縱橫");
    }
語法格式四:有兩個以上的參數,有返回值,并且Lambda體中有多條語句

Comparator<Integer> comparator = (x, y) -> {
System.out.println("函數式接口");
return Integer.compare(x, y);
}

@Test
    public void test4(){
        Comparator<Integer> comparator = (x, y) -> {
            System.out.println("函數式接口");
            return Integer.compare(x, y);
        };
    }
語法格式五:若Lambda體中只有一條語句,return和大括號都可以省略不寫

Comparator<Integer> comparator = (x, y) -> Integer.compare(x, y);

@Test
    public void test5(){
        Comparator<Integer> comparator = (x, y) -> Integer.compare(x, y);
    }
語法格式六:Lambda表達式的參數列表的數據類型可以省略不寫,因為JVM編譯器可以通過上下文推斷出數據類型,即“類型推斷”。

(Integer x, Integer y) -> Integer.compare(x, y); 其中Integer可以省略不寫

Lambda表達式需要“函數式接口”的支持

函數式接口:接口中只有一個抽象方法的接口,稱為函數式接口??梢允褂米⒔釦FunctionInterface修飾,可以檢查接口是否是函數式接口

@FunctionalInterface
public interface MyFun<T> {

    public Integer getValue(Integer num);
}
向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女