val
終於!輕鬆搞定 final 區域變數。
val
在 lombok 0.10 中引入。
NEW in Lombok 1.18.22: val
被替換為 final var
。
概觀
您可以使用 val
作為區域變數宣告的類型,而無需實際撰寫類型。當您這樣做時,類型將從初始化運算式中推斷出來。區域變數也會被設為 final。此功能僅適用於區域變數和 foreach 迴圈,不適用於欄位。初始化運算式是必需的。
val
實際上是一種「類型」,並且在 lombok
套件中以真實類別的形式存在。您必須匯入它才能使 val 工作(或使用 lombok.val
作為類型)。在區域變數宣告中存在此類型會觸發新增 final
關鍵字,以及複製初始化運算式的類型,這會覆寫「假的」val
類型。
警告:此功能目前在 NetBeans 中無法運作。
使用 Lombok
import java.util.ArrayList;
|
原生 Java
import java.util.ArrayList;
|
支援的配置鍵
-
lombok.val.flagUsage
= [warning
|error
] (預設值:未設定) - 如果配置,Lombok 將標記任何
val
的使用為警告或錯誤。
小字說明
對於複合類型,推斷的是最常見的父類別,而不是任何共享介面。例如,bool ? new HashSet() : new ArrayList()
是一個具有複合類型的運算式:結果同時是 AbstractCollection
和 Serializable
。推斷的類型將是 AbstractCollection
,因為它是一個類別,而 Serializable
是一個介面。
在不明確的情況下,例如當初始化運算式為 null 時,會推斷為 java.lang.Object
。