インタフェースClassReader
- すべてのスーパー・インタフェース:
ConstantPool,Iterable<PoolEntry>
public sealed interface ClassReader extends ConstantPool
AttributeMapperの高度なclassファイル読取りサポート。 classファイル内の任意のオフセットを読み取り、一定のプール・アクセスに加えて様々な数値型(e.g., u2, u4)のデータを読み取ることをサポートします。
classファイル形式のすべての数値は、「ビッグ・エンディアン」です。
特に指定がないかぎり、すべての範囲外アクセスの結果は、classファイル・データの形式が不正であることを示すIllegalArgumentExceptionになります。 classファイル・データは任意であるため、ユーザーは、不正な形式のデータの解釈を試行する前に、データの構造的整合性を妥当性チェックする必要があります。
- 導入されたバージョン:
- 24
- 関連項目:
-
メソッドのサマリー
修飾子と型メソッド説明intclassファイルの長さをバイト数で返します。voidcopyBytesTo(BufWriter buf, int offset, int len) classファイルからBufWriterにバイト範囲をコピーします。カスタム属性マッパーの表を返します。intflags()クラスのアクセス・フラグをビット・マスクとして返します。byte[]readBytes(int offset, int len) classファイルの指定された範囲のバイトのコピーを返します。doublereadDouble(int offset) classファイル内の指定されたオフセットでdouble値を返します。readEntry(int offset) classファイル内の指定されたオフセットで索引が指定されている定数プール・エントリを返します。<T extends PoolEntry>
Tclassファイル内の指定されたオフセットで索引が指定されている特定のタイプの定数プール・エントリを返します。readEntryOrNull(int offset) classファイル内の指定されたオフセットで索引が指定されている定数プール・エントリを返します。指定されたオフセットでの索引がゼロの場合はnullを返します。<T extends PoolEntry>
TreadEntryOrNull(int offset, Class<T> cls) classファイル内の指定されたオフセットで索引が指定されている特定のタイプの定数プール・エントリを返します。指定されたオフセットでの索引がゼロの場合はnullを返します。floatreadFloat(int offset) classファイル内の指定されたオフセットで浮動小数値を返します。intreadInt(int offset) classファイル内の指定されたオフセットで符号付きintを返します。longreadLong(int offset) classファイル内の指定されたオフセットで符号付きlongを返します。intreadS1(int offset) classファイル内の指定されたオフセットで符号付きバイトを返します。intreadS2(int offset) classファイル内の指定されたオフセットで符号付きバイトを返します。intreadU1(int offset) classファイル内の指定されたオフセットにある符号なしバイトを返します。intreadU2(int offset) classファイル内の指定されたオフセットで符号なしshortを返します。スーパークラスの名前を記述する定数プール・エントリ(存在する場合)を返します。クラスの名前を記述する定数プール・エントリを返します。インタフェースjava.lang.classfile.constantpool.ConstantPoolで宣言されたメソッド
bootstrapMethodCount, bootstrapMethodEntry, entryByIndex, entryByIndex, iterator, sizeインタフェースjava.lang.Iterableで宣言されたメソッド
forEach, spliterator
-
メソッドの詳細
-
customAttributes
Function<Utf8Entry, AttributeMapper<?>> customAttributes()カスタム属性マッパーの表を返します。 これは、処理オプションClassFile.AttributeMapperOptionから導出されます。- 戻り値:
- カスタム属性マッパーの表
-
flags
int flags()クラスのアクセス・フラグをビット・マスクとして返します。- 戻り値:
- クラスのアクセス・フラグ(ビット・マスク)
- 関連項目:
-
thisClassEntry
-
superclassEntry
Optional<ClassEntry> superclassEntry()スーパークラスの名前を記述する定数プール・エントリ(存在する場合)を返します。- 戻り値:
- スーパークラスの名前を記述する定数プール・エントリ(存在する場合)
- 関連項目:
-
classfileLength
int classfileLength()classファイルの長さをバイト数で返します。- 戻り値:
classファイルの長さ(バイト数)
-
readEntry
PoolEntry readEntry(int offset) classファイル内の指定されたオフセットで索引が指定されている定数プール・エントリを返します。- APIのノート:
- 特定のタイプのエントリのみが必要な場合は、
readEntry(int, Class)を使用します。 - パラメータ:
offset-classファイル内の索引のオフセット- 戻り値:
classファイル内の指定されたオフセットで索引が指定されている定数プール・エントリ- スロー:
ConstantPoolException- 索引が定数プール・サイズの範囲外である場合、またはゼロの場合
-
readEntry
classファイル内の指定されたオフセットで索引が指定されている特定のタイプの定数プール・エントリを返します。- 型パラメータ:
T- 入力タイプ- パラメータ:
offset-classファイル内の索引のオフセットcls- 入力タイプ- 戻り値:
classファイル内で指定されたオフセットで索引が指定されている特定のタイプの定数プール・エントリ- スロー:
ConstantPoolException- 索引が定数プール・サイズの範囲外であるか、ゼロであるか、またはエントリが指定のタイプでない場合
-
readEntryOrNull
PoolEntry readEntryOrNull(int offset) classファイル内の指定されたオフセットで索引が指定されている定数プール・エントリを返します。指定されたオフセットでの索引がゼロの場合はnullを返します。- APIのノート:
- 特定のタイプのエントリのみが必要な場合は、
readEntryOrNull(int, Class)を使用します。 - パラメータ:
offset-classファイル内の索引のオフセット- 戻り値:
classファイル内の指定されたオフセットで索引が指定されている定数プール・エントリ、または指定されたオフセットでの索引がゼロの場合はnull- スロー:
ConstantPoolException- 索引が定数プール・サイズの範囲外である場合
-
readEntryOrNull
classファイル内の指定されたオフセットで索引が指定されている特定のタイプの定数プール・エントリを返します。指定されたオフセットでの索引がゼロの場合はnullを返します。- 型パラメータ:
T- 入力タイプ- パラメータ:
offset-classファイル内の索引のオフセットcls- 入力タイプ- 戻り値:
classファイル内の指定されたオフセットで索引が指定されている特定のタイプの定数プール・エントリ、または指定されたオフセットでの索引がゼロの場合はnull- スロー:
ConstantPoolException- 索引が定数プール・サイズの範囲外であるか、ゼロであるか、またはエントリが指定のタイプでない場合
-
readU1
int readU1(int offset) classファイル内の指定されたオフセットにある符号なしバイトを返します。 バイトを読み取り、ゼロでintに拡張します。- パラメータ:
offset-classファイル内のオフセット- 戻り値:
classファイル内で指定されたオフセットにある符号なしバイト
-
readU2
int readU2(int offset) classファイル内の指定されたオフセットで符号なしshortを返します。 2バイトの値を読み取り、ゼロでintに拡張します。- パラメータ:
offset-classファイル内のオフセット- 戻り値:
classファイル内で指定されたオフセットにある符号なしshort
-
readS1
int readS1(int offset) classファイル内の指定されたオフセットで符号付きバイトを返します。 バイトを読み取り、それをintに署名します。- パラメータ:
offset-classファイル内のオフセット- 戻り値:
classファイル内の指定されたオフセットにある署名付きバイト
-
readS2
int readS2(int offset) classファイル内の指定されたオフセットで符号付きバイトを返します。 2バイト値を読み取り、それをintに署名します。- パラメータ:
offset-classファイル内のオフセット- 戻り値:
classファイル内の指定されたオフセットにある署名付きバイト
-
readInt
int readInt(int offset) classファイル内の指定されたオフセットで符号付きintを返します。 4バイトの値を読み取ります。- パラメータ:
offset-classファイル内のオフセット- 戻り値:
classファイル内の指定されたオフセットにある符号付きint
-
readLong
long readLong(int offset) classファイル内の指定されたオフセットで符号付きlongを返します。 8バイトの値を読み取ります。- パラメータ:
offset-classファイル内のオフセット- 戻り値:
classファイル内の指定されたオフセットでの符号付きlong
-
readFloat
float readFloat(int offset) classファイル内の指定されたオフセットで浮動小数値を返します。 4バイトの値を読み取ります。変換では、
floatのすべてのNaN値を1つの「"canonical" NaN値」に縮小できる場合とできない場合があります。- パラメータ:
offset-classファイル内のオフセット- 戻り値:
classファイル内で指定されたオフセットにあるfloat値
-
readDouble
double readDouble(int offset) classファイル内の指定されたオフセットでdouble値を返します。 8バイトの値を読み取ります。変換では、
doubleのすべてのNaN値を1つの「"canonical" NaN値」に縮小できる場合とできない場合があります。- パラメータ:
offset-classファイル内のオフセット- 戻り値:
classファイル内の指定されたオフセットでのdouble値
-
readBytes
byte[] readBytes(int offset, int len) classファイルの指定された範囲のバイトのコピーを返します。- パラメータ:
offset-classファイル内のオフセットlen- 範囲の長さ- 戻り値:
classファイルの指定された範囲のバイトのコピー
-
copyBytesTo
-