java8—方法引用與構造器引用(三)
阿新 • • 發佈:2019-01-28
<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;