Serializable
, Comparable<AccessFlag>
, Constable
Represents a JVM access or module-related flag on a runtime member, such as a
class,
field, or
method.
JVM access and module-related flags are related to, but distinct from Java language modifiers. Some modifiers and access flags have a one-to-one correspondence, such as public
. In other cases, some language-level modifiers do not have an access flag, such as sealed
(JVMS 4.7.31) and some access flags have no corresponding modifier, such as synthetic.
The values for the constants representing the access and module flags are taken from sections of The Java Virtual Machine Specification including 4.1 (class access and property modifiers), 4.5 (field access and property flags), 4.6 (method access and property flags), 4.7.6 (nested class access and property flags), 4.7.24 (method parameters), and 4.7.25 (module flags and requires, exports, and opens flags).
The mask values for the different access flags are not distinct. Flags are defined for different kinds of JVM structures and the same bit position has different meanings in different contexts. For example, 0x0000_0040
indicates a volatile
field but a bridge method; 0x0000_0080
indicates a transient
field but a variable arity (varargs) method.
AccessFlag
is intended to model the set of access flags across class file format versions. The range of versions an access flag is recognized is not explicitly indicated in this API. See the current The Java Virtual Machine Specification for details. Unless otherwise indicated, access flags can be assumed to be recognized in the current version.
Nested Classes
static enum
A location within a class file where flags can be applied.
Enum Constants
The access flag
ACC_ABSTRACT
, corresponding to the source modifier
abstract
, with a mask value of
0x0400
.
The access flag ACC_ANNOTATION
with a mask value of 0x2000
.
The access flag ACC_BRIDGE
with a mask value of 0x0040
The access flag ACC_ENUM
with a mask value of 0x4000
.
The access flag
ACC_FINAL
, corresponding to the source modifier
final
, with a mask value of
0x0010
.
The access flag ACC_INTERFACE
with a mask value of 0x0200
.
The access flag ACC_MANDATED
with a mask value of 0x8000
.
The access flag ACC_MODULE
with a mask value of 0x8000
.
The access flag
ACC_NATIVE
, corresponding to the source modifier
native
, with a mask value of
0x0100
.
The module flag ACC_OPEN
with a mask value of 0x0020
.
The access flag
ACC_PRIVATE
, corresponding to the source modifier
private
, with a mask value of
0x0002
.
The access flag
ACC_PROTECTED
, corresponding to the source modifier
protected
, with a mask value of
0x0004
.
The access flag
ACC_PUBLIC
, corresponding to the source modifier
public
, with a mask value of
0x0001
.
The access flag
ACC_STATIC
, corresponding to the source modifier
static
, with a mask value of
0x0008
.
The module requires flag ACC_STATIC_PHASE
with a mask value of 0x0040
.
The access flag
ACC_STRICT
, corresponding to the source modifier
strictfp
, with a mask value of
0x0800
.
The access flag ACC_SUPER
with a mask value of 0x0020
.
The access flag
ACC_SYNCHRONIZED
, corresponding to the source modifier
synchronized
, with a mask value of
0x0020
.
The access flag ACC_SYNTHETIC
with a mask value of 0x1000
.
The access flag
ACC_TRANSIENT
, corresponding to the source modifier
transient
, with a mask value of
0x0080
.
The module requires flag ACC_TRANSITIVE
with a mask value of 0x0020
.
The access flag ACC_VARARGS
with a mask value of 0x0080
.
The access flag
ACC_VOLATILE
, corresponding to the source modifier
volatile
, with a mask value of
0x0040
.
Returns kinds of constructs the flag can be applied to in the latest class file format version.
Returns kinds of constructs the flag can be applied to in the given class file format version.
int
Returns the corresponding integer mask for the access flag.
Returns an unmodifiable set of access flags for the given mask value appropriate for the location in question.
boolean
Returns whether or not the flag has a directly corresponding modifier in the Java programming language.
Returns the enum constant of this class with the specified name.
Returns an array containing the constants of this enum class, in the order they are declared.
Methods declared in class java.lang.Enumclone, compareTo, describeConstable, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf
The access flag
ACC_PUBLIC
, corresponding to the source modifier
public
, with a mask value of
0x0001
.
The access flag
ACC_PRIVATE
, corresponding to the source modifier
private
, with a mask value of
0x0002
.
The access flag
ACC_PROTECTED
, corresponding to the source modifier
protected
, with a mask value of
0x0004
.
The access flag
ACC_STATIC
, corresponding to the source modifier
static
, with a mask value of
0x0008
.
The access flag
ACC_FINAL
, corresponding to the source modifier
final
, with a mask value of
0x0010
.
The access flag ACC_SUPER
with a mask value of 0x0020
.
ACC_SUPER
flag as set in every class file (JVMS 4.1).
The module flag ACC_OPEN
with a mask value of 0x0020
.
The module requires flag ACC_TRANSITIVE
with a mask value of 0x0020
.
The access flag
ACC_SYNCHRONIZED
, corresponding to the source modifier
synchronized
, with a mask value of
0x0020
.
The module requires flag ACC_STATIC_PHASE
with a mask value of 0x0040
.
The access flag
ACC_VOLATILE
, corresponding to the source modifier
volatile
, with a mask value of
0x0040
.
The access flag ACC_BRIDGE
with a mask value of 0x0040
The access flag
ACC_TRANSIENT
, corresponding to the source modifier
transient
, with a mask value of
0x0080
.
The access flag ACC_VARARGS
with a mask value of 0x0080
.
The access flag
ACC_NATIVE
, corresponding to the source modifier
native
, with a mask value of
0x0100
.
The access flag ACC_INTERFACE
with a mask value of 0x0200
.
The access flag
ACC_ABSTRACT
, corresponding to the source modifier
abstract
, with a mask value of
0x0400
.
The access flag
ACC_STRICT
, corresponding to the source modifier
strictfp
, with a mask value of
0x0800
.
ACC_STRICT
access flag is defined for class file major versions 46 through 60, inclusive (JVMS 4.6), corresponding to Java SE 1.2 through 16.
The access flag ACC_SYNTHETIC
with a mask value of 0x1000
.
The access flag ACC_ANNOTATION
with a mask value of 0x2000
.
The access flag ACC_ENUM
with a mask value of 0x4000
.
The access flag ACC_MANDATED
with a mask value of 0x8000
.
The access flag ACC_MODULE
with a mask value of 0x8000
.
Returns an array containing the constants of this enum class, in the order they are declared.
Returns the enum constant of this class with the specified name. The string must match exactly an identifier used to declare an enum constant in this class. (Extraneous whitespace characters are not permitted.)
name
- the name of the enum constant to be returned.
IllegalArgumentException
- if this enum class has no constant with the specified name
NullPointerException
- if the argument is null
public int mask()
Returns the corresponding integer mask for the access flag.
public boolean sourceModifier()
Returns whether or not the flag has a directly corresponding modifier in the Java programming language.
Returns kinds of constructs the flag can be applied to in the latest class file format version.
Returns kinds of constructs the flag can be applied to in the given class file format version.
cffv
- the class file format version to use
NullPointerException
- if the parameter is null
Returns an unmodifiable set of access flags for the given mask value appropriate for the location in question.
mask
- bit mask of access flags
location
- context to interpret mask value
IllegalArgumentException
- if the mask contains bit positions not support for the location in question
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4