-
Lambda表達(dá)式的語法####
(para1, para2...) -> { //實現(xiàn)代碼塊 }
其中:
- ( )中para1, para2是參數(shù),是Lambda表達(dá)式的輸入
- ->稱為箭頭符號
- { }中是Lambda表達(dá)式的方法體拖云,稱為
statement
- 只有一個參數(shù)時娜庇,( )可去掉
- 方法體只有一行語句時,{ }可去掉茂附,并省略
return
与境,例如e -> System.out.println(e)
吟榴,稱為expression
-
Lambda表達(dá)式可以作為函數(shù)式接口的實例###
例子:
先定義函數(shù)式接口
TestInterface
@FunctionalInterface
public Interface TestInterface {
public abstract void testMethod(String message);
}構(gòu)建
TestInterface
接口的實例
public static void main(String[] args) {
TestInterface testInterface = (e) -> {
System.out.println(e + " word");//這里是testMethod方法的具體實現(xiàn)體
};
testInterface.testMethod("hello");
}從上面的代碼可以看出茫蛹,引用
testInterface
指向了由Lambda
表達(dá)式所創(chuàng)建的對象操刀。所以,Lambda表達(dá)式是對象類型婴洼,而不是函數(shù)骨坑。Lambda
表達(dá)式中的參數(shù)e
的類型一定是方法testMethod(String message)
的參數(shù)類型String
。因為TestInterface
是函數(shù)式接口窃蹋,其中必定只有一個抽象方法卡啰。