写法
拷贝小括号,写死右箭头,落地大括号
@FunctionalInterface
interface Foo {
public int add(int x, int y);
}
/**
* 4. Lambda Express
*
*/
public class LambdaExpressDemo {
public static void main(String[] args) {
Foo foo = (int x, int y) -> {
return x + y;
};
}
}
注解
为了正确使用Lambda表达式,需要给接口加个注解:@FunctionalInterface
,如过接口有两个方法,立刻报错
*接口里允许方法的实现吗
在java8之前不可以,java8之后可以,只需要在方法名之前添加default
即可,被称为方法的默认实现
interface Foo {
default int div(int x, int y){
System.out.println("default方法");
return x/y;
}
}
*接口里可以有几个default方法
无数个
接口内的静态方法
interface Foo {
public static int sub(int x,int y){
return x-y;
}
}