@Retention(value=CLASS)
@Target(value={TYPE,FIELD,CONSTRUCTOR,METHOD})
public @interface Initializer
A method annotated with @Initializer should always be be called before the object is used.
Users of the class and static checkers must enforce, and can rely on, this invariant.
Examples include methods called indirectly by the constructor, protocols of init-then-use
where some values are initialized after construction but before the first use,
and builder classes where an object initialization must complete before build() is called.