<#import "../_features.html" as f> <@f.scaffold title="var" logline="Modifiable local variables with a type inferred by assigning value."> <@f.history>

var was introduced in lombok 1.16.12 as experimental feature.

<@f.experimental> Current status: uncertain – Currently we feel this feature cannot move out of experimental status. <@f.overview>

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.

<@f.confKeys>
lombok.var.flagUsage = [warning | error] (default: not set)
Lombok will flag any usage of var as a warning or error if configured.