Spec-Zone.ru › OpenJDK 24

Перечисление AccessFlag

java.lang.Object
java.lang.Enum<AccessFlag>
java.lang.reflect.AccessFlag
Все реализуемые интерфейсы:
Serializable, Comparable<AccessFlag>, Constable
public enum AccessFlag extends Enum<AccessFlag>
Представляет флаги доступа JVM или модуля к члену во время выполнения, такому как класс, поле или метод.

Флаги доступа JVM и модуля связаны, но отличны от модификаторов языка Java. Некоторые модификаторы и флаги доступа соответствуют один к одному, такие как public. В других случаях некоторые модификаторы на уровне языка не имеют флага доступа, такие как sealed (JVMS 4.7.31), и некоторые флаги доступа не имеют соответствующего модификатора, например, синтетический.

Значения для констант, представляющих флаги доступа и модуля, взяты из разделов Спецификация Java Virtual Machine, включая 4.1 (доступ к классу и модификаторы свойств), 4.5 (доступ к полям и флаги свойств), 4.6 (доступ к методам и флаги свойств), 4.7.6 (доступ к вложенным классам и флаги свойств), 4.7.24 (параметры метода) и 4.7.25 (флаги модуля и флаги требует, экспортирует и открывает).

Значения маски для различных флагов доступа не являются различными. Флаги определены для различных типов структур JVM, и одна и та же позиция бита имеет разное значение в разных контекстах. Например, 0x0000_0040 указывает поле volatile, но метод-мост; 0x0000_0080 указывает поле transient, но метод с переменной арностью (varargs) .

Примечание API:
Формат файла класса JVM имеет новую версию, определенную для каждого нового релиза функциональности. Новая версия файла класса может определить новые флаги доступа или убрать старые. AccessFlag предназначена для моделирования набора флагов доступа через версии формата файла класса. Диапазон версий, в которых распознается флаг доступа, явно не указан в этом API. Обратитесь к текущей Спецификации Java Virtual Machine для получения подробностей. Если не указано иное, предполагается, что флаги доступа распознаются в текущей версии.
Требования к реализации:
Константы флагов доступа упорядочены по неубывающему значению маски; то есть значение маски константы больше или равно значению маски непосредственного соседа слева (синтаксически). Если добавляются новые константы, это свойство сохраняется. Это означает, что новые константы не обязательно будут добавлены в конец существующего списка.
С:
20
См. также:
  • Modifier
  • ModuleDescriptor.Modifier
  • ModuleDescriptor.Requires.Modifier
  • ModuleDescriptor.Exports.Modifier
  • ModuleDescriptor.Opens.Modifier
  • Modifier

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

Модификатор и тип Класс Описание
static enum  AccessFlag.Location
Расположение внутри файла класса, где можно применить флаги.

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

Enum.EnumDesc<E extends Enum<E>>

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

Константа перечисления Описание
ABSTRACT
Флаг доступа ACC_ABSTRACT, соответствующий исходному модификатору abstract, со значением маски 0x0400.
ANNOTATION
Флаг доступа ACC_ANNOTATION со значением маски 0x2000.
BRIDGE
Флаг доступа ACC_BRIDGE со значением маски 0x0040
ENUM
Флаг доступа ACC_ENUM со значением маски 0x4000.
FINAL
Флаг доступа ACC_FINAL, соответствующий исходному модификатору final, со значением маски 0x0010.
INTERFACE
Флаг доступа ACC_INTERFACE со значением маски 0x0200.
MANDATED
Флаг доступа ACC_MANDATED со значением маски 0x8000.
MODULE
Флаг доступа ACC_MODULE со значением маски 0x8000.
NATIVE
Флаг доступа ACC_NATIVE, соответствующий исходному модификатору native, со значением маски 0x0100.
OPEN
Флаг модуля ACC_OPEN со значением маски 0x0020.
PRIVATE
Флаг доступа ACC_PRIVATE, соответствующий исходному модификатору private, со значением маски 0x0002.
PROTECTED
Флаг доступа ACC_PROTECTED, соответствующий исходному модификатору protected, со значением маски 0x0004.
PUBLIC
Флаг доступа ACC_PUBLIC, соответствующий исходному модификатору public, со значением маски 0x0001.
STATIC
Флаг доступа ACC_STATIC, соответствующий исходному модификатору static, со значением маски 0x0008.
STATIC_PHASE
Флаг модуля, требующего ACC_STATIC_PHASE со значением маски 0x0040.
STRICT
Флаг доступа ACC_STRICT, соответствующий исходному модификатору strictfp, со значением маски 0x0800.
SUPER
Флаг доступа ACC_SUPER со значением маски 0x0020.
SYNCHRONIZED
Флаг доступа ACC_SYNCHRONIZED, соответствующий исходному модификатору synchronized, со значением маски 0x0020.
SYNTHETIC
Флаг доступа ACC_SYNTHETIC со значением маски 0x1000.
TRANSIENT
Флаг доступа ACC_TRANSIENT, соответствующий исходному модификатору transient, со значением маски 0x0080.
TRANSITIVE
Флаг модуля, требующего ACC_TRANSITIVE со значением маски 0x0020.
VARARGS
Флаг доступа ACC_VARARGS со значением маски 0x0080.
VOLATILE
Флаг доступа ACC_VOLATILE, соответствующий исходному модификатору volatile, со значением маски 0x0040.

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

Модификатор и тип Метод Описание
Set<AccessFlag.Location> locations()
Возвращает типы конструкций, к которым можно применить флаг в последней версии формата файла класса.
Set<AccessFlag.Location> locations(ClassFileFormatVersion cffv)
Возвращает типы конструкций, к которым можно применить флаг в данной версии формата файла класса.
int mask()
Возвращает соответствующую целочисленную маску для флага доступа.
static Set<AccessFlag> maskToAccessFlags(int mask, AccessFlag.Location location)
Возвращает неизменяемый набор флагов доступа для данного значения маски, подходящий для данного расположения.
boolean sourceModifier()
Возвращает, соответствует ли флагу прямой соответствующий модификатор в языке программирования Java.
static AccessFlag valueOf(String name)
Возвращает константу перечисления этого класса со заданным именем.
static AccessFlag[] values()
Возвращает массив, содержащий константы этого класса перечисления в порядке их объявления.

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

clone, compareTo, describeConstable, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf

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

getClass, notify, notifyAll, wait, wait, wait

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

PUBLIC

public static final AccessFlag PUBLIC
Флаг доступа ACC_PUBLIC, соответствующий модификатору источника public, со значением маски 0x0001.

PRIVATE

public static final AccessFlag PRIVATE
Флаг доступа ACC_PRIVATE, соответствующий модификатору источника private, со значением маски 0x0002.

PROTECTED

public static final AccessFlag PROTECTED
Флаг доступа ACC_PROTECTED, соответствующий модификатору источника protected, со значением маски 0x0004.

STATIC

public static final AccessFlag STATIC
Флаг доступа ACC_STATIC, соответствующий модификатору источника static, со значением маски 0x0008.

FINAL

public static final AccessFlag FINAL
Флаг доступа ACC_FINAL, соответствующий модификатору источника final, со значением маски 0x0010.

SUPER

public static final AccessFlag SUPER
Флаг доступа ACC_SUPER со значением маски 0x0020.
Примечание API:
В Java SE 8 и выше JVM рассматривает флаг ACC_SUPER как установленный в каждом файле класса (JVMS 4.1).

OPEN

public static final AccessFlag OPEN
Флаг модуля ACC_OPEN со значением маски 0x0020.
См. также:
  • ModuleDescriptor.isOpen()

TRANSITIVE

public static final AccessFlag TRANSITIVE
Флаг требования модуля ACC_TRANSITIVE со значением маски 0x0020.
См. также:
  • ModuleDescriptor.Requires.Modifier.TRANSITIVE

SYNCHRONIZED

public static final AccessFlag SYNCHRONIZED
Флаг доступа ACC_SYNCHRONIZED, соответствующий модификатору источника synchronized, со значением маски 0x0020.

STATIC_PHASE

public static final AccessFlag STATIC_PHASE
Флаг требования модуля ACC_STATIC_PHASE со значением маски 0x0040.
См. также:
  • ModuleDescriptor.Requires.Modifier.STATIC

VOLATILE

public static final AccessFlag VOLATILE
Флаг доступа ACC_VOLATILE, соответствующий модификатору источника volatile, со значением маски 0x0040.

BRIDGE

public static final AccessFlag BRIDGE
Флаг доступа ACC_BRIDGE со значением маски 0x0040
См. также:
  • Method.isBridge()

TRANSIENT

public static final AccessFlag TRANSIENT
Флаг доступа ACC_TRANSIENT, соответствующий модификатору источника transient, со значением маски 0x0080.

VARARGS

public static final AccessFlag VARARGS
Флаг доступа ACC_VARARGS со значением маски 0x0080.
См. также:
  • Executable.isVarArgs()

NATIVE

public static final AccessFlag NATIVE
Флаг доступа ACC_NATIVE, соответствующий модификатору источника native, со значением маски 0x0100.

INTERFACE

public static final AccessFlag INTERFACE
Флаг доступа ACC_INTERFACE со значением маски 0x0200.
См. также:
  • Class.isInterface()

ABSTRACT

public static final AccessFlag ABSTRACT
Флаг доступа ACC_ABSTRACT, соответствующий модификатору источника abstract, со значением маски 0x0400.

STRICT

public static final AccessFlag STRICT
Флаг доступа ACC_STRICT, соответствующий модификатору источника strictfp, со значением маски 0x0800.
Примечание API:
Флаг доступа ACC_STRICT определён для версий файлов классов с 46 по 60 включительно (JVMS 4.6), соответствующих Java SE 1.2—16.

SYNTHETIC

public static final AccessFlag SYNTHETIC
Флаг доступа ACC_SYNTHETIC со значением маски 0x1000.
См. также:
  • Class.isSynthetic()
  • Executable.isSynthetic()
  • ModuleDescriptor.Modifier.SYNTHETIC

ANNOTATION

public static final AccessFlag ANNOTATION
Флаг доступа ACC_ANNOTATION со значением маски 0x2000.
См. также:
  • Class.isAnnotation()

ENUM

public static final AccessFlag ENUM
Флаг доступа ACC_ENUM со значением маски 0x4000.
См. также:
  • Class.isEnum()

MANDATED

public static final AccessFlag MANDATED
Флаг доступа ACC_MANDATED со значением маски 0x8000.

MODULE

public static final AccessFlag MODULE
Флаг доступа ACC_MODULE со значением маски 0x8000.

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

values

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

valueOf

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

mask

public int mask()
Возвращает соответствующую целочисленную маску для флага доступа.
Возвращает:
соответствующую целочисленную маску для флага доступа

sourceModifier

public boolean sourceModifier()
Возвращает, имеет ли флаг непосредственно соответствующий модификатор в языке программирования Java.
Возвращает:
имеет ли флаг непосредственно соответствующий модификатор в языке программирования Java

locations

public Set<AccessFlag.Location> locations()
Возвращает типы конструкций, к которым можно применить флаг в последней версии формата файла класса.
Возвращает:
типы конструкций, к которым можно применить флаг в последней версии формата файла класса

locations

public Set<AccessFlag.Location> locations(ClassFileFormatVersion cffv)
Возвращает типы конструкций, к которым может быть применена метка в заданной версии формата файла класса.
Параметры:
cffv - версия формата файла класса, которую нужно использовать
Возвращает:
типы конструкций, к которым может быть применена метка в заданной версии формата файла класса
Использует:
NullPointerException - если параметр является null

maskToAccessFlags

public static Set<AccessFlag> maskToAccessFlags(int mask, AccessFlag.Location location)
Возвращает неизменяемый набор флагов доступа для данного значения маски, соответствующий заданной позиции.
Параметры:
mask - битовая маска флагов доступа
location - контекст для интерпретации значения маски
Возвращает:
неизменяемый набор флагов доступа для данного значения маски, соответствующий заданной позиции
Использует:
IllegalArgumentException - если маска содержит битовые позиции, не поддерживаемые для заданной позиции

© 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://download.java.net/java/early_access/jdk24/docs/api/java.base/java/lang/reflect/AccessFlag.html

Spec-Zone.ru

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