#import "_features.html" as f> <@f.scaffold title="var" logline="Mutably! Hassle-free local variables."> <@f.history>
var
was promoted to the main package in lombok 1.16.20; given that JEP 286 establishes expectations, and lombok's take on var
follows these, we've decided to promote var
eventhough the feature remains controversial.var
was introduced in lombok 1.16.12 as experimental feature.
var
works exactly like val
, except the local variable is not marked as final
.
The type is still entirely derived from the mandatory initializer expression, and any further assignments, while now legal (because the variable is no longer final
), aren't looked at to determine the appropriate type.
For example, var x = "Hello"; x = Color.RED;
does not work; the type of x will be inferred to be java.lang.String
and thus, the x = Color.RED
assignment will fail. If the type of x
was inferred to be java.lang.Object
this code would have compiled, but that's not howvar
works.
lombok.var.flagUsage
= [warning
| error
] (default: not set)
var
as a warning or error if configured.