Retention (Java SE 25 & JDK 25)
Description: declaration: module: java.base, package: java.lang.annotation, annotation type: Retention
Keywords: java.lang.annotation.Retention class

# Annotation Interface Retention

@Documented @Retention(RUNTIME) @Target(ANNOTATION_TYPE) public @interface Retention
Indicates how long annotations with the annotated interface are to be retained. If no Retention annotation is present on an annotation interface declaration, the retention policy defaults to `RetentionPolicy.CLASS`.

A Retention meta-annotation has effect only if the meta-annotated interface is used directly for annotation. It has no effect if the meta-annotated interface is used as a member interface in another annotation interface.

See Java Language Specification:
  9.6.4.2 @Retention
Since:
  1.5

- ## Required Element Summary

  Required Elements
  Modifier and Type
  Required Element
  Description
  `RetentionPolicy`
  `value`
  Returns the retention policy.

- ## Element Details

  - ### value

    RetentionPolicy value
    Returns the retention policy.
    Returns:
      the retention policy