一、概述
- Lambda 表達式,也可稱爲閉包,它是推動 Java 8 發佈的最重要新特性;
- Lambda 允許把函數作爲一個方法的參數(函數作爲參數傳遞進方法中);
- 能夠使用Lambda的依據是必須有相應的函數接口(函數接口,是指內部只有一個抽象方法的接口)。
- 更多內容閱讀Java基礎(十六) 回調函數。
// 1. 不需要參數,返回值爲 5
() -> 5
// 2. 接收一個參數(數字類型),返回其2倍的值
x -> 2 * x
// 3. 接受2個參數(數字),並返回他們的差值
(x, y) -> x – y
// 4. 接收2個int型整數,返回他們的和
(int x, int y) -> x + y
// 5. 接受一個 string 對象,並在控制檯打印,不返回任何值(看起來像是返回void)
(String s) -> System.out.print(s)
二、具體使用
語法一:()->{}
無參數時,直接這麼寫
Runnable run = () -> System.out.println("Hello World");// 1
有一個參數時,直接 參數名 -> {}
View.OnClickListener listener = view -> System.out.println("button clicked");//2
有多個參數時,只需要在()裏寫上參數名字就可以
View.OnFocusChangeListener listener = (view, b) -> {};
語法二:::(兩個英文冒號)
RequestTask task1 = (args1, args2, args3) -> LambdaTest.getData(args1,args2,args3);
RequestTask task2 = LambdaTest::getData;
person -> person.getAge();
Person::getAge