Spec-Zone.ru › OpenJDK 27

Класс перечисления AttributeMapper.AttributeStability

java.lang.Object
java.lang.Enum<AttributeMapper.AttributeStability>
java.lang.classfile.AttributeMapper.AttributeStability
Все реализованные интерфейсы:
Serializable, Comparable<AttributeMapper.AttributeStability>, Constable
Охватывающий интерфейс:
AttributeMapper<A extends Attribute<A>>
public static enum AttributeMapper.AttributeStability extends Enum<AttributeMapper.AttributeStability>
Указывает зависимость данных представления атрибута в файле class. Возможность массового копирования атрибута в двоичном представлении в новый файл class зависит от того, ссылаются ли его данные на другие части содержащего его файла class.
Примечание к API:
Эта зависимость называется «стабильностью», поскольку она указывает условия, при которых атрибут файла class можно массово скопировать в другой файл class.
Начиная с:
24
См. также:
  • AttributeMapper.stability()

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

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

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

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

Константа перечисления Описание
CP_REFS
Помимо самостоятельных данных, атрибут ссылается на пул констант, включая атрибут BootstrapMethods, содержащего его файла class.
LABELS
Помимо самостоятельных данных и ссылок на пул констант, атрибут ссылается на позиции в массиве code атрибута Code.
STATELESS
Атрибут содержит только самостоятельные данные и не ссылается на другие части содержащего его файла class, за исключением имени атрибута.
UNKNOWN
Атрибут полностью неизвестен.
UNSTABLE
Атрибут ссылается на структуры, которыми библиотека не управляет (списки переменных типа и т. д.).

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

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

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

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

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

STATELESS

public static final AttributeMapper.AttributeStability STATELESS
Атрибут содержит только самостоятельные данные и не ссылается на другие части содержащего его файла class, за исключением имени атрибута. Поэтому его содержимое всегда можно массово скопировать в другой файл class.

Например, битовая маска является самостоятельными данными.

CP_REFS

public static final AttributeMapper.AttributeStability CP_REFS
Помимо самостоятельных данных, атрибут ссылается на пул констант, включая атрибут BootstrapMethods, содержащего его файла class. Поэтому его можно массово скопировать, если целевой файл class расширяет свой пул констант за счёт пула исходного class. Атрибут необходимо развернуть для преобразования ссылок на пул констант и переписать, если индексы пула констант несовместимы.

Например, Utf8Entry является ссылкой на пул констант.

См. также:
  • ConstantPoolBuilder.of(ClassModel)
  • ClassFile.ConstantPoolSharingOption

LABELS

public static final AttributeMapper.AttributeStability LABELS
Помимо самостоятельных данных и ссылок на пул констант, атрибут ссылается на позиции в массиве code атрибута Code. Поэтому его можно массово скопировать, если массив code не изменён; для этого целевой файл class должен расширять свой пул констант за счёт пула исходного class. Атрибут необходимо развернуть для преобразования меток Label или ссылок на пул констант, а затем переписать, если массив code изменился, в том числе если индексы пула констант несовместимы.

Например, значение bci, представленное объектом Label, является ссылкой на позицию в массиве code.

UNSTABLE

public static final AttributeMapper.AttributeStability UNSTABLE
Атрибут ссылается на структуры, которыми библиотека не управляет (списки переменных типа и т. д.). В результате даже после развёртывания атрибута эти ссылки могут быть преобразованы неправильно, а результаты перезаписи — некорректными.

Если атрибут прочитан из файла class, параметр ClassFile.AttributesProcessingOption определяет, следует ли сохранять атрибут или отбрасывать его при преобразовании.

См. также:
  • ClassFile.AttributesProcessingOption.DROP_UNSTABLE_ATTRIBUTES

UNKNOWN

public static final AttributeMapper.AttributeStability UNKNOWN
Атрибут полностью неизвестен. Поэтому его невозможно развернуть и переписать, и любое различие между целевым файлом class и содержащим его файлом class может привести к некорректности атрибута.

Параметр ClassFile.AttributesProcessingOption определяет, следует ли сохранять атрибут или отбрасывать его при преобразовании.

См. также:
  • UnknownAttribute
  • ClassFile.AttributesProcessingOption.DROP_UNSTABLE_ATTRIBUTES
  • ClassFile.AttributesProcessingOption.DROP_UNKNOWN_ATTRIBUTES

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

values

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

valueOf

public static AttributeMapper.AttributeStability 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