Java中的Lambda表達式
含義
lambda表達式 也可稱爲閉包 在Java8發佈
Lambda 允許把函數作爲一個方法的參數(函數作爲參數傳遞進方法中)。
使用 Lambda 表達式可以使代碼變的更加簡潔緊湊。
特徵
可選類型聲明 : 不需要聲明參數類型,編譯器可以統一識別參數值。
可選的參數圓括號 : 一個參數無需定義圓括號,但多個參數需要定義圓括號。
可選的大括號 : 如果主體只包含了一個語句,就不需要使用大括號。
可選的返回關鍵字 : 如果主體只有一個表達式返回值則編譯器會自動返回值,大括號需要指定明表達式返回了一個數值。
代碼
接口
接口必須是函數式接口 也就是隻有一個方法
interface Ren {
void name(String name);
}
lambda表達式調用
Ren ren = (String name) -> {
System.out.println("我的名字是: " + name);
};
簡化參數類型
編譯器可以統一識別參數值
ren = (name) -> {
System.out.println("我的名字是111: " + name);
};
簡化小括號
只傳入一個參數 可以簡化小括號
ren = name -> {
System.out.println("我的名字是222: " + name);
};
簡化花括號
要求是代碼只有一行 多行還是使用代碼塊
ren = name -> System.out.println("我的名字是333: " + name);
ren.name()
帶返回值 和 兩個參數
interface Fruit {
int add(int a, int b);
}
public class ThreadTest05 {
public static void main(String[] args) {
Fruit fruit = (a, b) -> a + b;
System.out.println(fruit.add(1, 2));
}
}