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

java中的雙冒號操作符

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

正規化:
類名::方法名

注意:

  1. 方法後面並沒有()
  2. 懶載入方法是否呼叫要看呼叫方使用情況

使用範例

方法呼叫

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

引用

https://www.cnblogs.com/yanlong300/p/9209243.html