1. 程式人生 > >Java8-Lambda表示式的5種形式

Java8-Lambda表示式的5種形式

形式一:

這種寫法沒有引數,用一對圓括號表示。

Runnable noArguments = () -> System.out.println("Hello World");

形式二:

這種寫法只有1個引數,可以省略括號,下面的 event 相當於 (event)

ActionListener oneArgument = event -> System.out.println("點選了按鈕");
// 等同於 ↓
//ActionListener oneArgument = (event) -> System.out.println("點選了按鈕");

形式三:

這種寫法表示有多段程式碼塊,適用於複雜狀況。

Runnable multiStatement = () -> {
    System.out.print("Hello");
    System.out.println(" World");
};

形式四:

這種寫法表示包含兩個引數的方法。 注意:下面的 functionAdd 並不是將兩個數字相加的結果,而是建立了一個函式,用來計算兩個數字相加的結果。變數 functionAdd 的型別並不是兩個數字相加的和,而是將兩個數字相加的那行程式碼。

// 建立一個函式
BinaryOperator<Long> functionAdd = (x, y) -> x + y;
// 應用函式,給函式傳值,得到計算結果
Long result = functionAdd.apply(1L, 2L);

形式五:

這種寫法和形式四的不同之處在於,多了對引數型別的顯示宣告。

// 建立一個函式
BinaryOperator<Long> function = (Long x, Long y) -> x + y;
// 應用函式,給函式傳值,得到計算結果
Long result = function.apply(1L, 2L);