インタフェースPoolEntry
- 既知のすべてのサブインタフェース:
AnnotationConstantValueEntry,ClassEntry,ConstantDynamicEntry,ConstantValueEntry,DoubleEntry,DynamicConstantPoolEntry,FieldRefEntry,FloatEntry,IntegerEntry,InterfaceMethodRefEntry,InvokeDynamicEntry,LoadableConstantEntry,LongEntry,MemberRefEntry,MethodHandleEntry,MethodRefEntry,MethodTypeEntry,ModuleEntry,NameAndTypeEntry,PackageEntry,StringEntry,Utf8Entry
public sealed interface PoolEntry permits AnnotationConstantValueEntry, DynamicConstantPoolEntry, LoadableConstantEntry, MemberRefEntry, ModuleEntry, NameAndTypeEntry, PackageEntry
classファイルの定数プール内のエントリをモデル化します。 エントリはclassファイルから読み取られ、ConstantPoolBuilderを使用して作成し、classファイルに書き込むことができます。 - 実装上のノート:
非バインド定数プール・エントリ
実装では、実際の定数プールに属していないバインドされていない定数プール・エントリを作成できます。 バインドされていないattributesが参照する定数プール・エントリを、classファイルから読み取らない場合に便利です。 それらのindex()は正でない無効な値を返し、そのconstantPool()の動作は不確定です。 これらは、「コンテキスト定数プール」とは別のものとみなされ、classファイルに書き込まれると変換されます。- シール済クラス階層グラフ:
- 導入されたバージョン:
- 24
- 関連項目:
-
フィールドのサマリー
フィールド修飾子と型フィールド説明static final intCONSTANT_Class定数の種類のtag。static final intCONSTANT_Double定数の種類のtag。static final intCONSTANT_Dynamic定数の種類のtag。static final intCONSTANT_Fieldref定数の種類のtag。static final intCONSTANT_Float定数の種類のtag。static final intCONSTANT_Integer定数の種類のtag。static final intstatic final intCONSTANT_InvokeDynamic定数の種類のtag。static final intCONSTANT_Long定数の種類のtag。static final intCONSTANT_MethodHandle定数の種類のtag。static final intCONSTANT_MethodType定数の種類のtag。static final intCONSTANT_Methodref定数の種類のtag。static final intCONSTANT_Module定数の種類のtag。static final intCONSTANT_NameAndType定数の種類のtag。static final intCONSTANT_Package定数の種類のtag。static final intCONSTANT_String定数の種類のtag。static final intCONSTANT_Utf8定数の種類のtag。 -
メソッドのサマリー
-
フィールド詳細
-
TAG_CLASS
-
TAG_DOUBLE
-
TAG_DYNAMIC
-
TAG_FIELDREF
-
TAG_FLOAT
-
TAG_INTEGER
-
TAG_INTERFACE_METHODREF
-
TAG_INVOKE_DYNAMIC
-
TAG_LONG
-
TAG_METHOD_HANDLE
-
TAG_METHODREF
-
TAG_METHOD_TYPE
-
TAG_MODULE
-
TAG_NAME_AND_TYPE
-
TAG_PACKAGE
-
TAG_STRING
-
TAG_UTF8
-
-
メソッドの詳細
-
constantPool
ConstantPool constantPool()このエントリの元の定数プールを返します。- APIのノート:
ConstantPoolBuilderbuilderおよびPoolEntry entryを指定すると、定数プールのオブジェクト等価ではなくbuilder.canWriteDirect(entry.constantPool())を使用して、エントリがビルダーに属しているかどうかを判断します。- 戻り値:
- このエントリの元の定数プール
- 関連項目:
-
tag
int tag()このエントリのタイプを説明する定数プール・タグを返します。- APIのノート:
TAG_-このクラスのプレフィクス付き定数(TAG_UTF8など)は、このメソッドの可能な戻り値を記述します。- 戻り値:
- このエントリのタイプを説明する定数プール・タグ
-
index
int index()このエントリに対応する定数プール内のインデックスを返します。 有効な索引は常に正です。索引が正でない場合、このエントリは「バインドなし」です。- 戻り値:
- このエントリに対応する定数プール内のインデックス
- 関連項目:
-
width
int width()このエントリが消費する定数プール・スロットの数を返します。CONSTANT_LongおよびCONSTANT_Doubleを除くすべてのプール・エントリの幅は1です。 これらの2つの例外の幅は2で、後続の索引はindex() + 1では使用不可とみなされます。- APIのノート:
- このエントリが「ロード可能」の場合、このエントリの幅は、このエントリを
ldcまたはldc2_wでロードするかどうかを決定しません。 たとえば、ConstantDynamicEntryの幅は常に1ですが、typeがlongまたはdoubleの場合は、ldc2_wでロードする必要があります。 かわりに、typeKind().slotSize()を使用してロード命令を決定します。 - 戻り値:
- このエントリが消費する定数プール・スロットの数
- 関連項目:
-