1、 方法引用: 若Lambda體中的內容有方法已經實現了,咱們能夠使用「方法引用」數組
要求 方法的參數和返回值類型 和 函數式接口中的參數類型和返回值類型保持一致。
主要有三種語法格式:app
對象 :: 實例方法名 函數
Consumer<String> consumer1 = System.out::print; //經過 方法引用 實現Lambda體。
consumer1.accept("Hello World!");
類 :: 靜態方法名spa
Comparator<Integer> comparator1 = Integer::compare; 等價於
Comparator<Integer> comparator2 = (x, y) -> Integer.compare(x,y);
類 :: 實例方法名對象
//Lambda表達式參數列表中的第一個參數是實例方法的調用者,而第二個參數是實例方法的參數時,能夠使用 類名 :: 方法名
BiPredicate<String, String> biPredicate = (x,y) -> x.equals(y);
BiPredicate<String,String> biPredicate1 = String :: equals;
2、構造器引用: 構造器中的參數類型和函數式接口中的參數類型一致。
Supplier<Date> supplier = Date :: new;
Date date = supplier.get();
long time = date.getTime();
3、數組引用
Function<Integer, String[]> function = String[]::new;String[] apply = function.apply(10);System.out.println(apply.length); // 10