方法引用就是通过类名或方法名引用已经存在的方法来简化lambda表达式。那么什么时候需要用方法引用呢?如果lamdba体中的内容已经有方法实现了,我们就可以使用方法引用。
一、方法引用的三种语法格式
1. 对象::实例方法名
lamdba写法:
@Testvoid test1(){ Consumer con = x -> System.out.println(x);}
方法引用写法:
@Testvoid test2(){ PrintStream out = System.out; Consumer con = out::println;}
consumer接口:
@FunctionalInterfacepublic interface Consumer { void accept(T t);}
注意:被调用的方法的参数列表和返回值类型需要与函数式接口中抽象方法的参数列表和返回值类型要一致。
2. 类::静态方法名
lamdba写法:
@Testvoid test3(){ Comparator com = (x, y) -> Integer.compare(x,y);}
方法引用写法: