<1.方法引用>若lambda体中的内容有其他方法已经实现了,可以使用“方法引用”(可以理解为方法体引用是lambda表达式的另外一种体现)
主要有三种语法格式:
对象::实例方法名
类::静态方法名
类::实例方法名
备注:1)lambda方法体中的参数列表和返回值要和函数式接口中的参数列表和返回值保持一致
2)若lambda参数列表中的第一个参数是实例方法的调用者,而第二个参数是实例方法的参数,可以使用ClassName::method
①对象::实例方法名
Consumer<String> con = x -> System.out.println(x);
<==>
PrintStream ps = System.out;
Consumer<String> con = x -> ps.println();
<==>
Consumer<String> con = ps::println;
②类::静态方法名
Comparator<Integer> com = (x,y) -> Integer.compare(x,y);
<==>
Comparator<Integer> com =Integer::compare;
③类::实例方法名
BiPredicate<String,String> bp = (x,y) -> x.equals(y);
<==>
BigPredicate<String,String> bp = String::equals;
<2.构造器引用>
Supplier<Employee> supEmp = () -> new Employee();
supEmp.get();
<==>
Supplier<Employee> supEmp = Employee::new;