val
终于来了!轻松搞定 final 局部变量。
val 在 lombok 0.10 中引入。
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。