-
Lambda表達式的語法####
(para1, para2...) -> { //實現代碼塊 }
其中:
- ( )中para1, para2是參數,是Lambda表達式的輸入
- ->稱為箭頭符號
- { }中是Lambda表達式的方法體,稱為
statement
- 只有一個參數時,( )可去掉
- 方法體只有一行語句時,{ }可去掉,并省略
return
,例如e -> System.out.println(e)
,稱為expression
-
Lambda表達式可以作為函數式接口的實例###
例子:
先定義函數式接口
TestInterface
@FunctionalInterface
public Interface TestInterface {
public abstract void testMethod(String message);
}構建
TestInterface
接口的實例
public static void main(String[] args) {
TestInterface testInterface = (e) -> {
System.out.println(e + " word");//這里是testMethod方法的具體實現體
};
testInterface.testMethod("hello");
}從上面的代碼可以看出,引用
testInterface
指向了由Lambda
表達式所創建的對象。所以,Lambda表達式是對象類型,而不是函數。Lambda
表達式中的參數e
的類型一定是方法testMethod(String message)
的參數類型String
。因為TestInterface
是函數式接口,其中必定只有一個抽象方法。