Lambda是從JDK1.8推出的重要新特性。很多的開發語言都開始支持函數式編程。
面向對象的方法要求在于:結構必須非常完整。
使用函數式編程,要求接口只有一個方法。如果接口有多個方法,那么無法使用函數式編程。所以,如果某個接口就是為了函數式編程而生,那么最好在定義該接口的時候,就指明,加一個注解:@FunctionInterface
。
public class Lambda {
@FunctionalInterface
interface IMessage{
public void print();
}
public static void main(String args[]){
IMessage msg = () -> System.out.println("Hello world");
msg.print();
}
}
執行結果如下:
Lamda表達式的單行實現
實際上,對于以上的語法形式:
- (參數) -> 單行語句:方法中只包含一行語句,只需要編寫一行語句即可。
- (參數)-> {多行語句}:如果返回計算結果,直接寫語句即可,不需要寫return。
public class Lambda {
@FunctionalInterface
interface IMath{
public int add(int a,int b);
}
public static void main(String args[]){
// 單行語句返回值直接寫就可以,也不需要return
IMath math = (a,b)->a+b;
System.out.println(math.add(2,5));
}