- 所有已实现的接口:
Serializable,Comparable<AccessFlag>,Constable
表示运行时成员上的 JVM 访问或模块相关标志,例如 类 、 field 或 method 。
JVM 访问和模块相关标志与 Java 语言 modifiers 相关但不同。一些修饰符和访问标志具有一一对应关系,例如 public 。在其他情况下,某些语言级别的修饰符确实 not 具有访问标志,例如 sealed (JVMS 4.7.31 ),而某些访问标志没有相应的修饰符,例如 合成的 。
表示访问和模块标志的常量值取自Java 虚拟机规范包括4.1(类访问和属性修饰符)、4.5(字段访问和属性标志)、4.6(方法访问和属性标志)、4.7.6(嵌套类访问和属性标志)、4.7.24(方法参数)和4.7.25(模块标志和需要、导出和打开标志)。
不同访问标志的 mask 值是 not 不同的。标志是为不同类型的 JVM 结构定义的,相同的位位置在不同的上下文中具有不同的含义。例如,0x0000_0040 表示 volatile 字段,但 桥接法 ; 0x0000_0080 表示 transient 字段但 可变元数 (varargs) 方法。
-
内部类总结
内部类在类 java.lang.Enum 中声明的嵌套类/接口
Enum.EnumDesc<E extends Enum<E>> -
枚举常量总结
枚举常量枚举常量描述掩码值为0x2000的访问标志ACC_ANNOTATION。掩码值为0x0040的访问标志ACC_BRIDGE访问标志ACC_ENUM,掩码值为0x4000。掩码值为0x0200的访问标志ACC_INTERFACE。具有掩码值0x8000的访问标志ACC_MANDATED。具有掩码值0x8000的访问标志ACC_MODULE。掩码值为0x0020的模块标志ACC_OPEN。该模块需要掩码值为0x0040的标志ACC_STATIC_PHASE。掩码值为0x0020的访问标志ACC_SUPER。访问标志ACC_SYNTHETIC,掩码值为0x1000。该模块需要掩码值为0x0020的标志ACC_TRANSITIVE。访问标志ACC_VARARGS,掩码值为0x0080。 -
方法总结
修饰符和类型方法描述返回在最新的类文件格式版本中可以应用标志的构造种类。返回在给定的类文件格式版本中可以应用标志的构造类型。intmask()返回访问标志对应的整数掩码。static Set<AccessFlag>maskToAccessFlags(int mask, AccessFlag.Location location) 为适用于相关位置的给定掩码值返回一组不可修改的访问标志。boolean返回标志在 Java 编程语言中是否具有直接对应的修饰符。static AccessFlag返回具有指定名称的此类的枚举常量。static AccessFlag[]values()返回一个数组,其中包含此枚举类的常量,按照它们声明的顺序排列。
-
枚举常量详细信息
-
PUBLIC
-
PRIVATE
-
PROTECTED
-
STATIC
-
FINAL
-
SUPER
掩码值为0x0020的访问标志ACC_SUPER。- API 注意:
-
在 Java SE 8 及更高版本中,JVM 将
ACC_SUPER标志视为在每个类文件 (JVMS 4.1) 中设置。
-
OPEN
掩码值为0x0020的模块标志ACC_OPEN。- 参见:
-
TRANSITIVE
该模块需要掩码值为0x0020的标志ACC_TRANSITIVE。- 参见:
-
SYNCHRONIZED
-
STATIC_PHASE
该模块需要掩码值为0x0040的标志ACC_STATIC_PHASE。- 参见:
-
VOLATILE
-
BRIDGE
掩码值为0x0040的访问标志ACC_BRIDGE- 参见:
-
TRANSIENT
-
VARARGS
访问标志ACC_VARARGS,掩码值为0x0080。- 参见:
-
NATIVE
-
INTERFACE
掩码值为0x0200的访问标志ACC_INTERFACE。- 参见:
-
ABSTRACT
-
STRICT
- API 注意:
ACC_STRICT访问标志是为类文件主要版本 46 到 60 定义的,包括(JVMS 4.6 ),对应于 Java SE 1.2 到 16。
-
SYNTHETIC
访问标志ACC_SYNTHETIC,掩码值为0x1000。- 参见:
-
ANNOTATION
掩码值为0x2000的访问标志ACC_ANNOTATION。- 参见:
-
ENUM
访问标志ACC_ENUM,掩码值为0x4000。- 参见:
-
MANDATED
具有掩码值0x8000的访问标志ACC_MANDATED。 -
MODULE
具有掩码值0x8000的访问标志ACC_MODULE。
-
-
方法详情
-
values
返回一个数组,其中包含此枚举类的常量,按照它们声明的顺序排列。- 返回:
- 包含此枚举类常量的数组,按照它们声明的顺序排列
-
valueOf
返回具有指定名称的此类的枚举常量。字符串必须匹配确切地用于在此类中声明枚举常量的标识符。 (不允许使用无关的空白字符。)- 参数:
name- 要返回的枚举常量的名称。- 返回:
- 具有指定名称的枚举常量
- 抛出:
IllegalArgumentException- 如果此枚举类没有具有指定名称的常量NullPointerException- 如果参数为空
-
mask
public int mask()返回访问标志对应的整数掩码。- 返回:
- 访问标志对应的整数掩码
-
sourceModifier
public boolean sourceModifier()返回标志在 Java 编程语言中是否具有直接对应的修饰符。- 返回:
- 该标志在 Java 编程语言中是否有直接对应的修饰符
-
locations
返回在最新的类文件格式版本中可以应用标志的构造种类。- 返回:
- 在最新的类文件格式版本中可以应用标志的构造种类
-
locations
返回在给定的类文件格式版本中可以应用标志的构造类型。- 参数:
cffv- 要使用的类文件格式版本- 返回:
- 在给定的类文件格式版本中可以应用标志的构造种类
- 抛出:
NullPointerException- 如果参数是null
-
maskToAccessFlags
为适用于相关位置的给定掩码值返回一组不可修改的访问标志。- 参数:
mask- 访问标志的位掩码location- 解释掩码值的上下文- 返回:
- 适用于所讨论位置的给定掩码值的一组不可修改的访问标志
- 抛出:
IllegalArgumentException- 如果掩码包含不支持相关位置的位位置
-