# Uses of Annotation Interface
java.lang.annotation.Documented

Packages that use Documented
Package
Description
java.beans
Contains classes related to developing beans -- components based on the JavaBeans architecture.
java.lang
Provides classes that are fundamental to the design of the Java programming language.
java.lang.annotation
Provides library support for the Java programming language annotation facility.
javax.annotation.processing
Facilities for declaring annotation processors and for allowing annotation processors to communicate with an annotation processing tool environment.
javax.management
Provides the core classes for the Java Management Extensions.

## Uses of Documented in java.beans

Classes in java.beans with annotations of type Documented
Modifier and Type
Class
Description
`@interface`
`BeanProperty`
An annotation used to specify some property-related information for the automatically generated `BeanInfo` classes.
`@interface`
`ConstructorProperties`
An annotation on a constructor that shows how the parameters of that constructor correspond to the constructed object's getter methods.
`@interface`
`JavaBean`
An annotation used to specify some class-related information for the automatically generated `BeanInfo` classes.

## Uses of Documented in java.lang

Classes in java.lang with annotations of type Documented
Modifier and Type
Class
Description
`@interface`
`Deprecated`
A program element annotated `@Deprecated` is one that programmers are discouraged from using.
`@interface`
`FunctionalInterface`
An informative annotation type used to indicate that an interface type declaration is intended to be a functional interface as defined by the Java Language Specification.
`@interface`
`SafeVarargs`
A programmer assertion that the body of the annotated method or constructor does not perform potentially unsafe operations on its varargs parameter.

## Uses of Documented in java.lang.annotation

Classes in java.lang.annotation with annotations of type Documented
Modifier and Type
Class
Description
`@interface`
`Documented`
If the annotation `@Documented` is present on the declaration of an annotation interface A, then any `@A` annotation on an element is considered part of the element's public contract.
`@interface`
`Inherited`
Indicates that an annotation interface is automatically inherited.
`@interface`
`Native`
Indicates that a field defining a constant value may be referenced from native code.
`@interface`
`Repeatable`
The annotation interface `java.lang.annotation.Repeatable` is used to indicate that the annotation interface whose declaration it (meta-)annotates is repeatable.
`@interface`
`Retention`
Indicates how long annotations with the annotated interface are to be retained.
`@interface`
`Target`
Indicates the contexts in which an annotation interface is applicable.

## Uses of Documented in javax.annotation.processing

Classes in javax.annotation.processing with annotations of type Documented
Modifier and Type
Class
Description
`@interface`
`Generated`
The Generated annotation is used to mark source code that has been generated.
`@interface`
`SupportedAnnotationTypes`
An annotation used to indicate what annotation interfaces an annotation processor supports.
`@interface`
`SupportedOptions`
An annotation used to indicate what options an annotation processor supports.
`@interface`
`SupportedSourceVersion`
An annotation used to indicate the latest source version an annotation processor supports.

## Uses of Documented in javax.management

Classes in javax.management with annotations of type Documented
Modifier and Type
Class
Description
`@interface`
`ConstructorParameters`
An annotation on a constructor that shows how the parameters of that constructor correspond to the constructed object's getter methods.
`@interface`
`DescriptorKey`
Meta-annotation that describes how an annotation element relates to a field in a `Descriptor`.
`@interface`
`MXBean`
Annotation to mark an interface explicitly as being an MXBean interface, or as not being an MXBean interface.