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

引用

http://hongjiang.info/eta-conversion-and-eta-expansion/


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM