Spec-Zone.ru › OpenJDK 27

Класс-перечисление RetentionPolicy

java.lang.Object
java.lang.Enum<RetentionPolicy>
java.lang.annotation.RetentionPolicy
Все реализуемые интерфейсы:
Serializable, Comparable<RetentionPolicy>, Constable
public enum RetentionPolicy extends Enum<RetentionPolicy>
Политика хранения аннотаций. Константы этого класса-перечисления описывают различные политики хранения аннотаций. Они используются совместно с метааннотацией Retention, чтобы указать, как долго следует хранить аннотации.
Начиная с версии:
1.5

Краткое описание вложенных классов

Вложенные классы/интерфейсы, объявленные в классе Enum

Enum.EnumDesc<E>
Модификатор и тип Класс Описание
static final class  Enum.EnumDesc<E extends Enum<E>>
Номинальный дескриптор константы enum.

Краткое описание констант перечисления

Константа перечисления Описание
CLASS
Компилятор записывает аннотации в файл класса, но виртуальная машина не обязана хранить их во время выполнения.
RUNTIME
Компилятор записывает аннотации в файл класса, а виртуальная машина хранит их во время выполнения, поэтому их можно считывать с помощью рефлексии.
SOURCE
Компилятор отбрасывает аннотации.

Краткое описание методов

Модификатор и тип Метод Описание
static RetentionPolicy valueOf(String name)
Возвращает константу перечисления этого класса с указанным именем.
static RetentionPolicy[] values()
Возвращает массив, содержащий константы этого класса-перечисления в порядке их объявления.

Методы, объявленные в классе Enum

clone, compareTo, describeConstable, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf
Модификатор и тип Метод Описание
protected final Object clone()
Выбрасывает CloneNotSupportedException.
final int compareTo(RetentionPolicy o)
Сравнивает это перечисление с указанным объектом, определяя порядок.
final Optional<Enum.EnumDesc<RetentionPolicy>> describeConstable()
Возвращает дескриптор перечисления EnumDesc для этого экземпляра, если его можно создать, или пустой Optional, если создать его невозможно.
final boolean equals(Object other)
Возвращает true, если указанный объект равен этой константе перечисления.
protected final void finalize()
Устарело, будет удалено: этот элемент API может быть удалён в будущей версии.
Финализация признана устаревшей и будет удалена.
final Class<RetentionPolicy> getDeclaringClass()
Возвращает объект Class, соответствующий типу перечисления этой константы перечисления.
final int hashCode()
Возвращает хеш-код этой константы перечисления.
final String name()
Возвращает имя этой константы перечисления в точности так, как оно указано в объявлении перечисления.
final int ordinal()
Возвращает порядковый номер этой константы перечисления (её позицию в объявлении перечисления, где первой константе присваивается номер 0).
String toString()
Возвращает имя этой константы перечисления, указанное в объявлении.
static <T extends Enum<T>>
T
valueOf(Class<T> enumClass, String name)
Возвращает константу указанного класса перечисления с указанным именем.

Методы, объявленные в классе Object

getClass, notify, notifyAll, wait, wait, wait
Модификатор и тип Метод Описание
final Class<?> getClass()
Возвращает класс времени выполнения этого Object.
final void notify()
Пробуждает один поток, ожидающий на мониторе этого объекта.
final void notifyAll()
Пробуждает все потоки, ожидающие на мониторе этого объекта.
final void wait()
Заставляет текущий поток ожидать пробуждения, обычно в результате уведомления или прерывания.
final void wait(long timeoutMillis)
Заставляет текущий поток ожидать пробуждения, обычно в результате уведомления или прерывания, либо до истечения определённого промежутка реального времени.
final void wait(long timeoutMillis, int nanos)
Заставляет текущий поток ожидать пробуждения, обычно в результате уведомления или прерывания, либо до истечения определённого промежутка реального времени.

Подробное описание констант перечисления

SOURCE

public static final RetentionPolicy SOURCE
Компилятор отбрасывает аннотации.

CLASS

public static final RetentionPolicy CLASS
Компилятор записывает аннотации в файл класса, но виртуальная машина не обязана хранить их во время выполнения. Это поведение используется по умолчанию.

RUNTIME

public static final RetentionPolicy RUNTIME
Компилятор записывает аннотации в файл класса, а виртуальная машина хранит их во время выполнения, поэтому их можно считывать с помощью рефлексии.
См. также:
  • AnnotatedElement

Подробное описание методов

values

public static RetentionPolicy[] values()
Возвращает массив, содержащий константы этого класса-перечисления в порядке их объявления.
Возвращает:
массив, содержащий константы этого класса-перечисления в порядке их объявления

valueOf

public static RetentionPolicy valueOf(String name)
Возвращает константу перечисления этого класса с указанным именем. Строка должна точно совпадать с идентификатором, использованным для объявления константы перечисления в этом классе. (Пробелы в начале и конце строки не допускаются.)
Параметры:
name — имя возвращаемой константы перечисления.
Возвращает:
константу перечисления с указанным именем
Выбрасывает:
IllegalArgumentException — если в этом классе-перечислении нет константы с указанным именем
NullPointerException — если аргумент равен null

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по API и документацию для разработчиков см. в документации Java SE, содержащей более подробные описания для разработчиков, концептуальные обзоры, определения терминов, обходные решения и рабочие примеры кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или её аффилированных лиц в США и других странах.
Авторское право © 1993, 2026, Oracle и/или её аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API