Java 基礎 - :: 的用法

介紹

它是 Java8 引入的新特性之一,常常被稱作爲方法引用。使用"::"可以進一步簡化一些使用了 lambda 表達式的代碼,讓代碼更加簡潔。 可以直接引用已有 Java 類或對象的方法或構造器。方法引用通常與 Lambda 表達式結合使用以簡化代碼。其使用條件是:Lambda 表達式的主體僅包含一個表達式,且 Lambda 表達式只調用了一個已經存在的方法;被引用的方法的參數列表和返回值與 Lambda 表達式的輸入輸出一致。

用法

String[] array = {"aaaa", "bbbb", "cccc"};
List<String> list = Arrays.asList(array);
list.forEach(x-> System.out.println(x));
list.forEach(System.out::println(x));

關於可讀性問題

大部分人認爲 Lambda 表達式存在閱讀困難的問題,其實不然,這種流水線的結構恰恰增加了可讀性,每一個 Lambda 表達式都可以看作一個執行策略,方法引用反而讓你能更加清楚執行了什麼策略。

new Random().ints(10)
        .map(operand -> {
            System.out.println("operand = " + operand);
            return operand+1;
        })
        .forEach(System.out::println);

這種"大肚子"寫法的風格是不建議在函數式編程中出現的。最好對大肚子"內容單獨提出來封裝,做方法引用,

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章