方法引用
目的
为了简化lambda表达式,
前提
-
当lambda体中的语句体调用方法时
-
当引用方法的参数列表与返回值和要重写的抽象方法的参数列表与返回值保持一致
-
注意要求满足上列两个要求才能方法引用
使用的情况
- 对象::方法名
正常的lambda表达式为
Consumer<String> con = s -> System.out.println(s);
con.accept("你真帅");
使用过后为
Consumer<String> consumer = System.out::println;
consumer.accept("你是真他么帅");
- 类名: :静态方法名
正常的lambda表达式为
BiFunction<Integer,Integer,Integer> bi = (a,b)->Math.max(a,b);
bi.apply(10,15);
使用过
BiFunction<Integer,Integer,Integer> biFunction =Math::min;
biFunction.apply(25,65);
- 类名::成员方法
正常的lambda表达式
BiFunction<String,String,Boolean> biFunction1 = (a,b)->a.equals(b);
biFunction1.apply("sdad","sdsad");
使用过后
BiFunction<String,String,Boolean> biFunction2 = String::equals;
biFunction2.apply("sdas","sdd");