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();
}
}
执行结果如下:
实际上,对于以上的语法形式:
- (参数) -> 单行语句:方法中只包含一行语句,只需要编写一行语句即可。
- (参数)-> {多行语句}:如果返回计算结果,直接写语句即可,不需要写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));
}