Annotation for method parameter and class field declarations, which denotes that corresponding
actual values must be compile-time constant expressions.
Indicates that the annotated method is provided only to be overridden: it should not be
invoked from outside its declaring source file (as if it is private), and
overriding methods should not be directly invoked at all.
Use this annotation on any static or field that will be initialized lazily, where races yield no
semantic difference in the code (as, for example, is the case with String.hashCode()).
Indicates that any concrete method that overrides the annotated method, directly or indirectly,
must invoke super.theAnnotatedMethod(...) at some point.