public enum RetentionPolicy extends Enum<RetentionPolicy>
Retention meta-annotation type to specify
 how long annotations are to be retained.| Enum Constant and Description | 
|---|
| CLASSAnnotations are to be recorded in the class file by the compiler
 but need not be retained by the VM at run time. | 
| RUNTIMEAnnotations are to be recorded in the class file by the compiler and
 retained by the VM at run time, so they may be read reflectively. | 
| SOURCEAnnotations are to be discarded by the compiler. | 
| Modifier and Type | Method and Description | 
|---|---|
| static RetentionPolicy | valueOf(String name)Returns the enum constant of this type with the specified name. | 
| static RetentionPolicy[] | values()Returns an array containing the constants of this enum type, in
the order they are declared. | 
public static final RetentionPolicy SOURCE
public static final RetentionPolicy CLASS
public static final RetentionPolicy RUNTIME
AnnotatedElementpublic static RetentionPolicy[] values()
for (RetentionPolicy c : RetentionPolicy.values()) System.out.println(c);
public static RetentionPolicy valueOf(String name)
name - the name of the enum constant to be returned.IllegalArgumentException - if this enum type has no constant with the specified nameNullPointerException - if the argument is null 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, 2017, Oracle and/or its affiliates.  All rights reserved. Use is subject to license terms. Also see the documentation redistribution policy.