- 所有已实现的接口:
-
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 classes/interfaces declared in class java.lang.Enum
Enum.EnumDesc<E extends Enum<E>>
-
Enum Constant Summary
Enum 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返回标志可以应用于最新类文件格式版本中的构造种类。返回标志可以应用于给定类文件格式版本中的构造种类。int
mask()
返回访问标志的相应整数掩码。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
- 如果掩码包含不支持所讨论位置的位位置
-