java中的雙冒號操作符
阿新 • • 發佈:2018-12-10
定義
雙冒號運算操作符是類方法的控制代碼,lambda表示式的一種簡寫,這種簡寫的學名叫eta-conversion或者叫η-conversion。
通常的情況下:
把 x -> System.out.println(x) 簡化為 System.out::println 的過程稱之為 eta-conversion
把 System.out::println 簡化為 x -> System.out.println(x) 的過程稱之為 eta-expansion
正規化: 類名::方法名
注意:
方法後面並沒有()
懶載入方法是否呼叫要看呼叫方使用情況
使用範例
方法呼叫
person -> person.getAge(); 可以替換成 Person::getAge
x -> System.out.println(x) 可以替換成 System.out::println out是一個PrintStream類的物件,println是該類的方法,依據x的型別來過載方法
建立物件
() -> new ArrayList<>(); 可以替換為 ArrayList::new new關鍵字實際上呼叫的是ArrayList的構造方法
JVM實現
JVM底層實現是CallSite,對JDK層暴漏的介面是Functional