java.lang.Object
java.lang.Enum<AccessFlag>
java.lang.reflect.AccessFlag
- すべての実装されたインタフェース:
Serializable
,Comparable<AccessFlag>
,Constable
public enum AccessFlag extends Enum<AccessFlag>
class、field、methodなどのランタイム・メンバーのJVMアクセスまたはモジュール関連フラグを表します。
JVMアクセスおよびモジュール関連のフラグは、Java言語modifiersに関連付けられていますが、異なります。 一部の修飾子およびアクセス・フラグには、 public
などの1対1の対応関係があります。 また、sealed
(JVMS 4.7.31)などの言語レベルの修飾子にはアクセス・フラグがなく、syntheticなどの対応する修飾子がないアクセス・フラグもあります。
アクセスおよびモジュール・フラグを表す定数の値は、4.1 (クラス・アクセスおよびプロパティ修飾子)、4.5 (フィールド・アクセスおよびプロパティ・フラグ)、4.6 (メソッド・アクセスおよびプロパティ・フラグ)、4.7.6 (ネストされたクラス・アクセスおよびプロパティ・フラグ)、4.7.24 (メソッド・パラメータ)および4.7.25 (モジュール・フラグと必須、エクスポートおよびオープン・フラグ)などの「Java Virtual Machine仕様」のセクションから取得されます。
異なるアクセス・フラグの「マスク」値は異なります。 フラグは異なる種類のJVM構造に対して定義され、同じビット位置は異なるコンテキストで異なる意味を持ちます。 たとえば、0x0000_0040
はvolatile
フィールドを示しますが、「ブリッジ・メソッド」 ; 0x0000_0080
はtransient
フィールドを示しますが、「変数アリティ (varargs)」メソッドを示します。
- APIのノート:
- JVMクラス・ファイル形式には、新しい「機能リリース」ごとに「新しいバージョン」が定義されています。 新しいクラス・ファイル・バージョンでは、新しいアクセス・フラグを定義したり、古いアクセス・フラグを廃止できます。
AccessFlag
は、クラス・ファイル形式のバージョン間で一連のアクセス・フラグをモデル化することを目的としています。 アクセス・フラグが認識されるバージョンの範囲は、このAPIでは明示的に示されません。 詳細は、現在の「Java Virtual Machine仕様」を参照してください。 特に明記されていないかぎり、アクセス・フラグは「現在のバージョン」で認識されているとみなすことができます。 - 実装要件:
- アクセス・フラグの定数は、減衰しないマスク値によって順序付けされます。つまり、定数のマスク値は、その (構文)の左側にある近傍のマスク値以上です。 新しい定数が追加された場合、このプロパティは維持されます。 つまり、既存のリストの最後に新しい定数が追加されるとは限りません。
- 導入されたバージョン:
- 20
- 関連項目:
-
ネストされたクラスのサマリー
クラスjava.lang.Enumで宣言されたネストされたクラス/インタフェース
Enum.EnumDesc<E extends Enum<E>>
-
列挙型定数のサマリー
列挙型定数説明マスク値が0x2000
のアクセス・フラグACC_ANNOTATION
。マスク値が0x0040
のアクセス・フラグACC_BRIDGE
マスク値が0x4000
のアクセス・フラグACC_ENUM
。マスク値が0x0200
のアクセス・フラグACC_INTERFACE
。マスク値が0x8000
のアクセス・フラグACC_MANDATED
。マスク値が0x8000
のアクセス・フラグACC_MODULE
。マスク値が0x0020
のモジュール・フラグACC_OPEN
。モジュールには、マスク値が0x0040
のフラグACC_STATIC_PHASE
が必要です。マスク値が0x0020
のアクセス・フラグACC_SUPER
。ソース修飾子synchronized
に対応するアクセス・フラグACC_SYNCHRONIZED
。マスク値は0x0020
です。マスク値が0x1000
のアクセス・フラグACC_SYNTHETIC
。モジュールには、マスク値が0x0020
のフラグACC_TRANSITIVE
が必要です。マスク値が0x0080
のアクセス・フラグACC_VARARGS
。 -
メソッドのサマリー
修飾子と型メソッド説明最新のクラス・ファイル形式バージョンでフラグを適用できる構成の種類を返します。指定されたクラス・ファイル形式バージョンでフラグを適用できる構成の種類を返します。int
mask()
アクセス・フラグに対応する整数マスクを返します。static Set<AccessFlag>
maskToAccessFlags
(int mask, AccessFlag.Location location) 問題のロケーションに適した特定のマスク値に対する、変更できないアクセス・フラグのセットを返します。boolean
Javaプログラミング言語でフラグに直接対応する修飾子があるかどうかを返します。static AccessFlag
指定された名前を持つこのクラスのenum定数を返します。static AccessFlag[]
values()
この列挙クラスの定数を含む配列を宣言されている順序で 返します。
-
列挙型定数の詳細
-
PUBLIC
public static final AccessFlag PUBLIC -
PRIVATE
public static final AccessFlag PRIVATE -
PROTECTED
public static final AccessFlag PROTECTED -
STATIC
public static final AccessFlag STATIC -
FINAL
public static final AccessFlag FINAL -
SUPER
public static final AccessFlag SUPERマスク値が0x0020
のアクセス・フラグACC_SUPER
。- APIのノート:
- Java SE 8以上では、JVMは
ACC_SUPER
フラグをすべてのクラス・ファイル(JVMS 4.1)で設定されたものとして扱います。
-
OPEN
public static final AccessFlag OPENマスク値が0x0020
のモジュール・フラグACC_OPEN
。- 関連項目:
-
TRANSITIVE
public static final AccessFlag TRANSITIVEモジュールには、マスク値が0x0020
のフラグACC_TRANSITIVE
が必要です。- 関連項目:
-
SYNCHRONIZED
public static final AccessFlag SYNCHRONIZEDソース修飾子synchronized
に対応するアクセス・フラグACC_SYNCHRONIZED
。マスク値は0x0020
です。 -
STATIC_PHASE
public static final AccessFlag STATIC_PHASEモジュールには、マスク値が0x0040
のフラグACC_STATIC_PHASE
が必要です。- 関連項目:
-
VOLATILE
public static final AccessFlag VOLATILE -
BRIDGE
public static final AccessFlag BRIDGEマスク値が0x0040
のアクセス・フラグACC_BRIDGE
- 関連項目:
-
TRANSIENT
public static final AccessFlag TRANSIENT -
VARARGS
public static final AccessFlag VARARGSマスク値が0x0080
のアクセス・フラグACC_VARARGS
。- 関連項目:
-
NATIVE
public static final AccessFlag NATIVE -
INTERFACE
public static final AccessFlag INTERFACEマスク値が0x0200
のアクセス・フラグACC_INTERFACE
。- 関連項目:
-
ABSTRACT
public static final AccessFlag ABSTRACT -
STRICT
public static final AccessFlag STRICT- APIのノート:
ACC_STRICT
アクセス・フラグは、Java SE 1.2から16に対応するクラス・ファイル・メジャー・バージョン46から60 ((JVMS 4.6)を含む)に対して定義されています。
-
SYNTHETIC
public static final AccessFlag SYNTHETICマスク値が0x1000
のアクセス・フラグACC_SYNTHETIC
。- 関連項目:
-
ANNOTATION
public static final AccessFlag ANNOTATIONマスク値が0x2000
のアクセス・フラグACC_ANNOTATION
。- 関連項目:
-
ENUM
public static final AccessFlag ENUMマスク値が0x4000
のアクセス・フラグACC_ENUM
。- 関連項目:
-
MANDATED
public static final AccessFlag MANDATEDマスク値が0x8000
のアクセス・フラグACC_MANDATED
。 -
MODULE
public static final AccessFlag MODULEマスク値が0x8000
のアクセス・フラグACC_MODULE
。
-
-
メソッドの詳細
-
values
public static AccessFlag[] values()この列挙クラスの定数を含む配列を宣言されている順序で 返します。- 戻り値:
- この列挙クラスの定数を宣言されている順序で含む配列
-
valueOf
public static AccessFlag valueOf(String name) 指定された名前を持つこのクラスのenum定数を返します。 文字列は、このクラスでenum定数を宣言するために使用される識別子とexactlyと一致する必要があります。 (不適切な空白文字は許可されません。)- パラメータ:
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
- マスクに問題のロケーションがサポートされていないビット・ロケーションが含まれているかどうか
-