public @interface LazyNonNull
Lazily initialized fields have these two properties:
When the field is first read within a method, the field cannot be
assumed to be non-null. After a check that a LazyNonNull
field
holds a non-null value, all subsequent accesses within that
method can be assumed to be non-null, even after arbitrary external
method calls that might access the field.
LazyNonNull
gives stronger guarantees than Nullable
.
After a check that a Nullable
field holds a non-null value, only
accesses until the next non-Pure
method is called can be assumed
to be non-null.
To indicate that a LazyNonNull
or Nullable
field is
non-null whenever a particular method is called, use
NonNullOnEntry
.
Final fields are treated as LazyNonNull by default.
This annotation is associated with the NullnessChecker
.
Nullable
,
NullnessChecker