| Interface | Description | 
|---|---|
| Annotation | The common interface extended by all annotation types. | 
| Enum | Description | 
|---|---|
| ElementType | The constants of this enumerated type provide a simple classification of the
 syntactic locations where annotations may appear in a Java program. | 
| RetentionPolicy | Annotation retention policy. | 
| Exception | Description | 
|---|---|
| AnnotationTypeMismatchException | Thrown to indicate that a program has attempted to access an element of
 an annotation whose type has changed after the annotation was compiled
 (or serialized). | 
| IncompleteAnnotationException | Thrown to indicate that a program has attempted to access an element of
 an annotation type that was added to the annotation type definition after
 the annotation was compiled (or serialized). | 
| Error | Description | 
|---|---|
| AnnotationFormatError | Thrown when the annotation parser attempts to read an annotation
 from a class file and determines that the annotation is malformed. | 
| Annotation Type | Description | 
|---|---|
| Documented | Indicates that annotations with a type are to be documented by javadoc
 and similar tools by default. | 
| Inherited | Indicates that an annotation type is automatically inherited. | 
| Native | Indicates that a field defining a constant value may be referenced
 from native code. | 
| Repeatable | The annotation type  java.lang.annotation.Repeatableis
 used to indicate that the annotation type whose declaration it
 (meta-)annotates is repeatable. | 
| Retention | Indicates how long annotations with the annotated type are to
 be retained. | 
| Target | Indicates the contexts in which an annotation type is applicable. |