1. 程式人生 > >java中的雙冒號操作符

java中的雙冒號操作符

定義

雙冒號運算操作符是類方法的控制代碼,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