Annotation Interface UnderInitialization
Consider a class B that is a subtype of A. At the beginning of the constructor
 of B, this has the type @UnderInitialization(A.class), since all fields
 of A have been initialized by the super-constructor. Inside the constructor body, as soon
 as all fields of B are initialized, then the type of this changes to
 @UnderInitialization(B.class).
 
Code is allowed to store potentially not-fully-initialized objects in the fields of a partially-initialized object, as long as all initialization is complete by the end of the constructor.
What type qualifiers on the field are considered depends on the checker; for instance, the
 NullnessChecker considers NonNull. The
 initialization type system is not used on its own, but in conjunction with some other type-system
 that wants to ensure safe initialization.
 
When an expression has type @UnderInitialization, then no aliases that are typed
 differently may exist.
- See the Checker Framework Manual:
- Initialization Checker, Examples of the @UnderInitialization
     annotation
- 
Optional Element SummaryOptional Elements
- 
Element Details- 
valueClass<?> valueThe type-frame down to which the expression (of this type) has been initialized at least (inclusive). That is, an expression of type@UnderInitialization(T.class)has all type-frames initialized starting atObjectdown to (and including)T.- Returns:
- the type whose fields are fully initialized
 - Default:
- java.lang.Object.class
 
 
-