Spec-Zone.ru › OpenJDK 25

Класс перечисления 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>

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

Константа перечисления Описание
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

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

getClass, notify, notifyAll, wait, wait, wait

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

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. Если массив code изменился, атрибут необходимо развернуть, чтобы преобразовать Label или ссылки на пул констант, и переписать; это также необходимо при несовместимости индексов пула констант.

Например, значение 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, 2025, 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.
https://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/lang/classfile/AttributeMapper.AttributeStability.html

Spec-Zone.ru

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