在JAVA中有种神奇的表达式–Lambda表达式,它可以在特定情况下代替匿名内部类使用从而极大减少代码量。
一:Lambda表达式的使用
要想满足Lambda的使用条件,就必须保证它所重写的是一个只带一个方法的接口,Lambda的格式是(参数)->{代码块}。
二:Lambda表达式的作用
Lambda表达式可以用作一个实现了接口的类使用,例如:
public interface Sum {
int add(int x,int y);
}
新建一个接口
public class Lambad {
public static void main(String[] args) {
getSum((int x,int y)->{
return x - y;
});
}
public static void getSum(Sum s) {
int sum=s.add(10,20);
System.out.println(sum);
}
}
此处代替了一个函数的参数使用
Sum s = (int x,int y)->{return x-y;};
此处代替了多态方式创建对象的使用
三:Lambda表达式的再简化
可以省去数据类型(有多个参数时要一起省)
Sum s = (x,y)->{return x-y;};
可以省去大括号和封号,如果有return,要连return一起省
Sum s = (x,y)->x-y;
四:Lambda的优点
Lambda在使用时不会像匿名内部类一样生成一个.class字节码文件