Uses of Class java.lang.annotation.Retention (Java Platform SE 8 )
Date: 2026-04-24

## Uses of Class
java.lang.annotation.Retention

- Packages that use Retention
  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 |
  javax.annotation.processing | Facilities for declaring annotation processors and for allowing annotation processors to communicate with an annotation processing tool environment.
  javax.jws |
  javax.jws.soap |
  javax.management | Provides the core classes for the Java Management Extensions.
  javax.xml.bind.annotation | Defines annotations for customizing Java program elements to XML Schema mapping.
  javax.xml.bind.annotation.adapters | `XmlAdapter` and its spec-defined sub-classes to allow arbitrary Java classes to be used with JAXB.
  javax.xml.ws | This package contains the core JAX-WS APIs.
  javax.xml.ws.soap | This package defines APIs specific to the SOAP binding.
  javax.xml.ws.spi | This package defines SPIs for JAX-WS.

- - ### Uses of Retention in java.beans

    Classes in java.beans with annotations of type Retention
    Modifier and Type | Class and Description
    --- | ---
    `interface` | `ConstructorProperties` An annotation on a constructor that shows how the parameters of that constructor correspond to the constructed object's getter methods.
    `interface` | `Transient` Indicates that an attribute called "transient" should be declared with the given `value` when the `Introspector` constructs a `PropertyDescriptor` or `EventSetDescriptor` classes associated with the annotated code element.

  - ### Uses of Retention in java.lang

    Classes in java.lang with annotations of type Retention
    Modifier and Type | Class and Description
    --- | ---
    `interface` | `Deprecated` A program element annotated @Deprecated is one that programmers are discouraged from using, typically because it is dangerous, or because a better alternative exists.
    `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` | `Override` Indicates that a method declaration is intended to override a method declaration in a supertype.
    `interface` | `SafeVarargs` A programmer assertion that the body of the annotated method or constructor does not perform potentially unsafe operations on its varargs parameter.
    `interface` | `SuppressWarnings` Indicates that the named compiler warnings should be suppressed in the annotated element (and in all program elements contained in the annotated element).

  - ### Uses of Retention in java.lang.annotation

    Classes in java.lang.annotation with annotations of type Retention
    Modifier and Type | Class and Description
    --- | ---
    `interface` | `Documented` Indicates that annotations with a type are to be documented by javadoc and similar tools by default.
    `interface` | `Inherited` Indicates that an annotation type is automatically inherited.
    `interface` | `Native` Indicates that a field defining a constant value may be referenced from native code.
    `interface` | `Repeatable` The annotation type `java.lang.annotation.Repeatable` is used to indicate that the annotation type whose declaration it (meta-)annotates is repeatable.
    `interface` | `Retention` Indicates how long annotations with the annotated type are to be retained.
    `interface` | `Target` Indicates the contexts in which an annotation type is applicable.

  - ### Uses of Retention in javax.annotation

    Classes in javax.annotation with annotations of type Retention
    Modifier and Type | Class and Description
    --- | ---
    `interface` | `Generated` The Generated annotation is used to mark source code that has been generated.
    `interface` | `PostConstruct` The PostConstruct annotation is used on a method that needs to be executed after dependency injection is done to perform any initialization.
    `interface` | `PreDestroy` The PreDestroy annotation is used on methods as a callback notification to signal that the instance is in the process of being removed by the container.
    `interface` | `Resource` The Resource annotation marks a resource that is needed by the application.
    `interface` | `Resources` This class is used to allow multiple resources declarations.

  - ### Uses of Retention in javax.annotation.processing

    Classes in javax.annotation.processing with annotations of type Retention
    Modifier and Type | Class and Description
    --- | ---
    `interface` | `SupportedAnnotationTypes` An annotation used to indicate what annotation types 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 Retention in javax.jws

    Classes in javax.jws with annotations of type Retention
    Modifier and Type | Class and Description
    --- | ---
    `interface` | `HandlerChain`
    `interface` | `Oneway`
    `interface` | `WebMethod`
    `interface` | `WebParam`
    `interface` | `WebResult`
    `interface` | `WebService`

  - ### Uses of Retention in javax.jws.soap

    Classes in javax.jws.soap with annotations of type Retention
    Modifier and Type | Class and Description
    --- | ---
    `interface` | `SOAPBinding`
    `interface` | `SOAPMessageHandlers` Deprecated.

  - ### Uses of Retention in javax.management

    Classes in javax.management with annotations of type Retention
    Modifier and Type | Class and Description
    --- | ---
    `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.

  - ### Uses of Retention in javax.xml.bind.annotation

    Classes in javax.xml.bind.annotation with annotations of type Retention
    Modifier and Type | Class and Description
    --- | ---
    `interface` | `XmlAccessorOrder` Controls the ordering of fields and properties in a class.
    `interface` | `XmlAccessorType` Controls whether fields or Javabean properties are serialized by default.
    `interface` | `XmlAnyAttribute` Maps a JavaBean property to a map of wildcard attributes.
    `interface` | `XmlAnyElement` Maps a JavaBean property to XML infoset representation and/or JAXB element.
    `interface` | `XmlAttachmentRef` Marks a field/property that its XML form is a uri reference to mime content.
    `interface` | `XmlAttribute` Maps a JavaBean property to a XML attribute.
    `interface` | `XmlElement` Maps a JavaBean property to a XML element derived from property name.
    `interface` | `XmlElementDecl` Maps a factory method to a XML element.
    `interface` | `XmlElementRef` Maps a JavaBean property to a XML element derived from property's type.
    `interface` | `XmlElementRefs` Marks a property that refers to classes with `XmlElement` or JAXBElement.
    `interface` | `XmlElements` A container for multiple @`XmlElement` annotations.
    `interface` | `XmlElementWrapper` Generates a wrapper element around XML representation.
    `interface` | `XmlEnum` Maps an enum type `Enum` to XML representation.
    `interface` | `XmlEnumValue` Maps an enum constant in `Enum` type to XML representation.
    `interface` | `XmlID` Maps a JavaBean property to XML ID.
    `interface` | `XmlIDREF` Maps a JavaBean property to XML IDREF.
    `interface` | `XmlInlineBinaryData` Disable consideration of XOP encoding for datatypes that are bound to base64-encoded binary data in XML.
    `interface` | `XmlList` Used to map a property to a list simple type.
    `interface` | `XmlMimeType` Associates the MIME type that controls the XML representation of the property.
    `interface` | `XmlMixed` Annotate a JavaBean multi-valued property to support mixed content.
    `interface` | `XmlNs` Associates a namespace prefix with a XML namespace URI.
    `interface` | `XmlRegistry` Marks a class that has `XmlElementDecl`s.
    `interface` | `XmlRootElement` Maps a class or an enum type to an XML element.
    `interface` | `XmlSchema` Maps a package name to a XML namespace.
    `interface` | `XmlSchemaType` Maps a Java type to a simple schema built-in type.
    `interface` | `XmlSchemaTypes` A container for multiple @`XmlSchemaType` annotations.
    `interface` | `XmlSeeAlso` Instructs JAXB to also bind other classes when binding this class.
    `interface` | `XmlTransient` Prevents the mapping of a JavaBean property/type to XML representation.
    `interface` | `XmlType` Maps a class or an enum type to a XML Schema type.
    `interface` | `XmlValue` Enables mapping a class to a XML Schema complex type with a simpleContent or a XML Schema simple type.

  - ### Uses of Retention in javax.xml.bind.annotation.adapters

    Classes in javax.xml.bind.annotation.adapters with annotations of type Retention
    Modifier and Type | Class and Description
    --- | ---
    `interface` | `XmlJavaTypeAdapter` Use an adapter that implements `XmlAdapter` for custom marshaling.
    `interface` | `XmlJavaTypeAdapters` A container for multiple @`XmlJavaTypeAdapter` annotations.

  - ### Uses of Retention in javax.xml.ws

    Classes in javax.xml.ws with annotations of type Retention
    Modifier and Type | Class and Description
    --- | ---
    `interface` | `Action` The `Action` annotation allows explicit association of a WS-Addressing `Action` message addressing property with `input`, `output`, and `fault` messages of the mapped WSDL operation.
    `interface` | `BindingType` The `BindingType` annotation is used to specify the binding to use for a web service endpoint implementation class.
    `interface` | `FaultAction` The `FaultAction` annotation is used inside an `Action` annotation to allow an explicit association of a WS-Addressing `Action` message addressing property with the `fault` messages of the WSDL operation mapped from the exception class.
    `interface` | `RequestWrapper` Used to annotate methods in the Service Endpoint Interface with the request wrapper bean to be used at runtime.
    `interface` | `RespectBinding` This feature clarifies the use of the `wsdl:binding` in a JAX-WS runtime.
    `interface` | `ResponseWrapper` Used to annotate methods in the Service Endpoint Interface with the response wrapper bean to be used at runtime.
    `interface` | `ServiceMode` Used to indicate whether a `Provider` implementation wishes to work with entire protocol messages or just with protocol message payloads.
    `interface` | `WebEndpoint` Used to annotate the `getPortName()` methods of a generated service interface.
    `interface` | `WebFault` Used to annotate service specific exception classes to customize to the local and namespace name of the fault element and the name of the fault bean.
    `interface` | `WebServiceClient` Used to annotate a generated service interface.
    `interface` | `WebServiceProvider` Used to annotate a Provider implementation class.
    `interface` | `WebServiceRef` The `WebServiceRef` annotation is used to define a reference to a web service and (optionally) an injection target for it.
    `interface` | `WebServiceRefs` The `WebServiceRefs` annotation allows multiple web service references to be declared at the class level.

  - ### Uses of Retention in javax.xml.ws.soap

    Classes in javax.xml.ws.soap with annotations of type Retention
    Modifier and Type | Class and Description
    --- | ---
    `interface` | `Addressing` This annotation represents the use of WS-Addressing with either the SOAP 1.1/HTTP or SOAP 1.2/HTTP binding.
    `interface` | `MTOM` This feature represents the use of MTOM with a web service.

  - ### Uses of Retention in javax.xml.ws.spi

    Classes in javax.xml.ws.spi with annotations of type Retention
    Modifier and Type | Class and Description
    --- | ---
    `interface` | `WebServiceFeatureAnnotation` Annotation used to identify other annotations as a `WebServiceFeature`.

Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2026, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Also see the documentation redistribution policy.