インタフェース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 int
CONSTANT_Class
定数の種類のtag。static final int
CONSTANT_Double
定数の種類のtag。static final int
CONSTANT_Dynamic
定数の種類のtag。static final int
CONSTANT_Fieldref
定数の種類のtag。static final int
CONSTANT_Float
定数の種類のtag。static final int
CONSTANT_Integer
定数の種類のtag。static final int
static final int
CONSTANT_InvokeDynamic
定数の種類のtag。static final int
CONSTANT_Long
定数の種類のtag。static final int
CONSTANT_MethodHandle
定数の種類のtag。static final int
CONSTANT_MethodType
定数の種類のtag。static final int
CONSTANT_Methodref
定数の種類のtag。static final int
CONSTANT_Module
定数の種類のtag。static final int
CONSTANT_NameAndType
定数の種類のtag。static final int
CONSTANT_Package
定数の種類のtag。static final int
CONSTANT_String
定数の種類のtag。static final int
CONSTANT_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のノート:
ConstantPoolBuilder
builder
および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()
を使用してロード命令を決定します。 - 戻り値:
- このエントリが消費する定数プール・スロットの数
- 関連項目:
-