Java8新特性 -- Lambda 方法引用和構造器引用

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
相關文章
相關標籤/搜索