一、Lambda表达式
是JDK8开始新增的一种语法形式;作用:用于简化匿名内部类的代码写法。
Arrays.setAll(prices, new IntToDoubleFunction() {
@Override
public double applyAsDouble(int value) {
return prices[value] * 0.8;
}
});
//使用Lambda简化后的
Arrays.setAll(prices, (int value) -> {
return prices[value] * 0.8; });
//再简化
Arrays.setAll(prices, value -> prices[value] * 0.8 );
二、方法引用
1.静态方法的引用
类名::静态方法、
使用场景:如果某个Lambda表达式里只是调用一个静态方法,并且前后参数的形式一致,就可以使用静态方法。
2.实例方法的引用
对象名::实例方法
使用场景:如果某个Lambda表达式里只是调用一个实例方法,并且前后参数的形式一致,就可以使用实例方法引用。
3.特定类型的方法引用
类型::方法
使用场景:如果某个Lambda表达式里只是调用一个实例方法,并且前面参数列表中的第一个参数是作为方法的主调,后面的所有参数都是作为该实例方法的入参的,则此时就可以使用特定类型的方法引用。
4.构造器引用
类名::new
使用场景:如果某个Lambda表达式里只是在创建对象,并且前后参数情况一致,就可以使用构造器引用。