接口(函数式接口):
@FunctionalInterface
public interface InterfaceTest {
void add(int a,int b);
}
-------------------------------------------------------------------------------------
使用:
Integer a1 = 1;
Integer b2 = 2;
1.8之前示例:
InterfaceTest it = new InterfaceTest() {
@Override
public void add(int a, int b) {
System.out.println(a1+b2);
}
};
1.8之后示例:
InterfaceTest it = (a, b) ->System.out.println(a+b);
相比较而言,Lambda更为简洁,其所需要关注的只是接口中需要实现的方法的方法体,但是Lambert只适用于函数式接口,也就是一个接口中只可以有一个抽象方法,如果接口中存在多个抽象方法则无法使用Lambda实现。如果想要校验接口是否为函数式接口可以使用@FunctionalInterface注解来验证。