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