Java8實戰—Lambda表示式
阿新 • • 發佈:2019-02-16
目錄
序言
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表示式允許你用內聯的形式為函式式介面的抽象類方法提供實現,並把整個表示式作為函式式介面的例項。