Lambda 表達式已閱 君子之間淡如水,何謂淡如水?並不時常想起,但卻無處不在。 背景:This is f**king why we code? 可以讓Java 代碼異常簡潔的Lambda 表達式,瞭解一下。 一、Lambda 表達式簡介 Lambda 表達式類似一種匿名函數,簡單地說它就是沒有聲 ...
Lambda 表達式已閱
君子之間淡如水,何謂淡如水?並不時常想起,但卻無處不在。
背景:This is f**king why we code? 可以讓Java 代碼異常簡潔的Lambda 表達式,瞭解一下。
一、Lambda 表達式簡介
Lambda 表達式類似一種匿名函數,簡單地說它就是沒有聲明的方法,即沒有訪問修飾符、返回值聲明和名字,並且是伴隨Java 8誕生的新特性;可以將其視為做一種速記,在你需要使用某個方法的地方寫上Lambda 即便捷地使用該類;此外,當某個方法只使用一次,而且定義很簡短,使用這種速記法替代非常有效,這樣就不必在類中費力寫聲明與方法了,總之便捷簡介。
二、為什麼要使用Lambda
最直觀的作用就是可以使Java 代碼異常地簡潔。
三、Lambda 表達式簡單例子
把“一塊代碼”賦給一個Java變數:
1 /**
2 * 使用Lambda 把一塊代碼賦值給一個Java 變數
3 */
4 public class Lambda {
5
6 public static void main(String[] args) {
7
8 // 一個完整的Lambda表達式聲明
9 MyLambdaInterface myLambdaInterface = (s) -> s.startsWith("IOC") ? "IOC" : "gradle";
10
11 // 使用測試Lambda 表達式
12 System.out.println(myLambdaInterface.doSomeThings("IOC-gradle"));
13
14 }
15
16 public String codeBlock(String str){
17 return str.startsWith("IOC") ? "IOC" : "gradle";
18 }
19
20 /**
21 * Lambda 函數式介面
22 * 加上一個聲明@FunctionalInterface, 這樣別人就無法在裡面添加新的介面函數
23 */
24 @FunctionalInterface
25 interface MyLambdaInterface{
26 String doSomeThings(String s);
27 }
28
29 }
測試結果如下圖:
圖. Lambda 代碼塊賦值測試
君子之間淡如水,何謂淡如水?並不時常想起,但卻無處不在。