Lambda是函数式编程,就是为了不创建对象直接调用方法。
一个接口必须只有一个方法才能使用Lambda表达式。
不使用Lambda表达式时:
public static void main(String[] args){
print(new MyMath() {
public int sum(int x, int y) {
return x+y;
}
},100,200);
}
public static void print(MyMath m, int x, int y){
int num = m.sum(x,y);
System.out.println(num);
}
static interface MyMath{
int sum(int x, int y);
}
使用Lambda表达式:
public static void main(String[] args){
print((int x, int y)->{return x+y;},100,200);
}
public static void print(MyMath m, int x, int y){
int num = m.sum(x,y);
System.out.println(num);
}
static interface MyMath{
int sum(int x, int y);
}
其实就是把上文的匿名内部类的方法部分删掉(因为接口中只有一个抽象方法),只保留一个抽象的方法。
()中保留方法的参数部分,{}保留方法体的部分。