1. 程式人生 > >Java8實戰—Lambda表示式

Java8實戰—Lambda表示式

目錄

序言

Java8實戰中關於Lambda表示式的學習筆記

Lambda管中窺豹

Lambda可以簡單的理解為簡潔地表示可傳遞的匿名函式的一種方式:
它沒有名稱,但是有引數列表、函式主體、返回型別,可能還有一個可以丟擲的異常列表。

採用先前方式寫一個比較器:

Comparator<Apple> byWeight = new Comparator<Apple>() {
            @Override
            public int compare(Apple o1, Apple o2) {
                return
o1.getWeight().compareTo(o2.getWeight()); } };

而採用Lambda表示式為:

     Comparator<Apple> byweight = (Apple a1, Apple a2) -> a1.getWeight().compareTo(a2.getWeight());

這樣看起來,相對來說就比較清爽了。值得注意的是Lambda表示式沒有return語句,但是它預設已經隱含了return語句。如:

(String s) -> s.length() //具有一個String型別的引數並且返回了一個int型別
() -> void //表示空引數列表,且返回void的函式。

函式式介面

函式式介面就是隻定義一個抽象方法的介面
那麼用函式式介面可以幹什麼呢?Lambda表示式允許你用內聯的形式為函式式介面的抽象類方法提供實現,並把整個表示式作為函式式介面的例項。