- すべてのスーパー・インタフェース:
ConstantPoolPREVIEW
,Iterable<PoolEntryPREVIEW>
public sealed interface ClassReader extends ConstantPoolPREVIEW
ClassReader
は、JavaプラットフォームのプレビューAPIです。
プレビュー機能は、今後のリリースで削除するか、Javaプラットフォームの永続機能にアップグレードすることができます。
クラス・ファイルからの読み取りをサポートします。 クラス・ファイル内の特定のオフセットで、様々な数値型(e.g.,
u2
, u4
)のデータを読み取る、RAWバイトをコピーする、および定数プール・エントリを読み取るためのメソッドが提供されます。 カスタム属性のマッパーや処理オプションなど、追加の読取りコンテキストをカプセル化します。 - 導入されたバージョン:
- 22
-
メソッドのサマリー
修飾子と型メソッド説明int
クラス・ファイルの長さをバイト単位で返します。boolean
void
copyBytesTo
(BufWriterPREVIEW buf, int offset, int len) カスタム属性マッパーの表を返します。int
flags()
クラスのアクセス・フラグをビット・マスクとして返します。byte[]
readBytes
(int offset, int len) クラス・ファイルの指定された範囲にあるバイトのコピーを返します。readClassEntry
(int offset) クラス・ファイル内で指定されたオフセットでインデックスが指定されたクラス・エントリを返します。double
readDouble
(int offset) クラス・ファイル内で指定されたオフセットにあるdouble値を返します。readEntry
(int offset) クラス・ファイル内で指定されたオフセットでインデックスが指定された定数プール・エントリを返します。指定された型の定数プール・エントリを返します。その索引は、クラス・ファイル内の指定されたオフセットで指定されます。readEntryOrNull
(int offset) クラス・ファイル内の指定されたオフセットでインデックスが指定された定数プール・エントリを返します。指定されたオフセットでのインデックスがゼロの場合はnullを返します。float
readFloat
(int offset) クラス・ファイル内で指定されたオフセットにあるfloat値を返します。int
readInt
(int offset) クラス・ファイル内で指定されたオフセットにある符号付き整数を返します。long
readLong
(int offset) クラス・ファイル内の指定されたオフセットで符号付き長を返します。readMethodHandleEntry
(int offset) クラス・ファイル内で指定されたオフセットでインデックスが指定されたメソッド・ハンドル・エントリを返します。readModuleEntry
(int offset) クラス・ファイル内で指定されたオフセットでインデックスが指定されたモジュール・エントリを返します。readNameAndTypeEntry
(int offset) クラス・ファイル内で指定されたオフセットでインデックスが指定された名前とタイプのエントリを返します。readPackageEntry
(int offset) クラス・ファイル内で指定されたオフセットでインデックスが指定されたパッケージ・エントリを返します。int
readS1
(int offset) クラス・ファイル内の指定されたオフセットにある符号付きバイトを返します。int
readS2
(int offset) クラス・ファイル内の指定されたオフセットにある符号付きバイトを返します。int
readU1
(int offset) クラス・ファイル内の指定されたオフセットにある符号なしバイトを返します。int
readU2
(int offset) クラス・ファイル内で指定されたオフセットにある符号なしshortを返します。readUtf8Entry
(int offset) クラス・ファイル内で指定されたオフセットで索引が指定されたUTF8エントリを返します。readUtf8EntryOrNull
(int offset) クラス・ファイル内の指定されたオフセットで索引が指定されたUTF8エントリを返します。指定されたオフセットで索引がゼロの場合はnullを返します。int
skipAttributeHolder
(int offset) 指定された位置から始まる属性のブロックに続くオフセットを返します。スーパークラスの名前を記述する定数プール・エントリ(存在する場合)を返します。クラスの名前を記述する定数プール・エントリを返します。int
this_class
フィールドのクラス・ファイルにオフセットを戻します。utf8EntryByIndex
(int index) 定数プールの指定された索引にあるUTF8定数プール・エントリを返します。インタフェースjava.lang.classfile.constantpool.ConstantPoolPREVIEWで宣言されたメソッド
bootstrapMethodCount, bootstrapMethodEntry, entryByIndex, iterator, size
インタフェースjava.lang.Iterableで宣言されたメソッド
forEach, spliterator
-
メソッドの詳細
-
customAttributes
Function<Utf8EntryPREVIEW,AttributeMapperPREVIEW<?>> customAttributes()カスタム属性マッパーの表を返します。 これは、処理オプションClassFile.AttributeMapperOption
PREVIEWから導出されます。- 戻り値:
- カスタム属性マッパーの表
-
flags
int flags()クラスのアクセス・フラグをビット・マスクとして返します。- 戻り値:
- クラスのアクセス・フラグ(ビット・マスク)
-
thisClassEntry
-
superclassEntry
Optional<ClassEntryPREVIEW> superclassEntry()スーパークラスの名前を記述する定数プール・エントリ(存在する場合)を返します。- 戻り値:
- スーパークラスの名前を記述する定数プール・エントリ(存在する場合)
-
thisClassPos
int thisClassPos()this_class
フィールドのクラス・ファイルにオフセットを戻します。- 戻り値:
this_class
フィールドのクラス・ファイルへのオフセット
-
classfileLength
int classfileLength()クラス・ファイルの長さをバイト単位で返します。- 戻り値:
- クラス・ファイルの長さ(バイト単位)
-
skipAttributeHolder
int skipAttributeHolder(int offset) 指定された位置から始まる属性のブロックに続くオフセットを返します。- パラメータ:
offset
- 属性ブロックが開始されるクラス・ファイルへのオフセット- 戻り値:
- 指定された位置から始まる属性のブロックに続くオフセット
-
utf8EntryByIndex
-
readEntry
クラス・ファイル内で指定されたオフセットでインデックスが指定された定数プール・エントリを返します。- パラメータ:
offset
- クラス・ファイル内のインデックスのオフセット- 戻り値:
- クラス・ファイル内の指定されたオフセットでインデックスが指定された定数プール・エントリ
- 例外:
ConstantPoolExceptionPREVIEW
- 索引が定数プール・サイズの範囲外である場合、またはゼロの場合
-
readEntry
指定された型の定数プール・エントリを返します。その索引は、クラス・ファイル内の指定されたオフセットで指定されます。- 型パラメータ:
T
- 入力タイプ- パラメータ:
offset
- クラス・ファイル内のインデックスのオフセットcls
- 入力タイプ- 戻り値:
- クラス・ファイル内で指定されたオフセットでインデックスが指定されている、指定されたタイプの定数プール・エントリ
- 例外:
ConstantPoolExceptionPREVIEW
- 索引が定数プール・サイズの範囲外であるか、ゼロであるか、またはエントリが指定のタイプでない場合
-
readEntryOrNull
クラス・ファイル内の指定されたオフセットでインデックスが指定された定数プール・エントリを返します。指定されたオフセットでのインデックスがゼロの場合はnullを返します。- パラメータ:
offset
- クラス・ファイル内のインデックスのオフセット- 戻り値:
- クラス・ファイル内の指定されたオフセットでインデックスが指定されている定数プール・エントリ、または指定されたオフセットでのインデックスがゼロの場合はnull
- 例外:
ConstantPoolExceptionPREVIEW
- 索引が定数プール・サイズの範囲外である場合
-
readUtf8Entry
クラス・ファイル内で指定されたオフセットで索引が指定されたUTF8エントリを返します。- パラメータ:
offset
- クラス・ファイル内のインデックスのオフセット- 戻り値:
- クラス・ファイル内で指定されたオフセットで索引が指定されたUTF8エントリ
- 例外:
ConstantPoolExceptionPREVIEW
- 索引が定数プール・サイズの範囲外であるか、ゼロであるか、または索引がUTF8エントリに対応していない場合
-
readUtf8EntryOrNull
クラス・ファイル内の指定されたオフセットで索引が指定されたUTF8エントリを返します。指定されたオフセットで索引がゼロの場合はnullを返します。- パラメータ:
offset
- クラス・ファイル内のインデックスのオフセット- 戻り値:
- クラス・ファイル内の指定されたオフセットで索引が指定されたUTF8エントリ、または指定されたオフセットでの索引がゼロの場合はnull
- 例外:
ConstantPoolExceptionPREVIEW
- 索引が定数プール・サイズの範囲外であるか、索引がUTF8エントリに対応していない場合
-
readModuleEntry
ModuleEntryPREVIEW readModuleEntry(int offset) クラス・ファイル内で指定されたオフセットでインデックスが指定されたモジュール・エントリを返します。- パラメータ:
offset
- クラス・ファイル内のインデックスのオフセット- 戻り値:
- クラス・ファイル内で指定されたオフセットでインデックスが指定されたモジュール・エントリ
- 例外:
ConstantPoolExceptionPREVIEW
- 索引が定数プール・サイズの範囲外であるか、ゼロであるか、または索引がモジュール・エントリに対応していない場合
-
readPackageEntry
PackageEntryPREVIEW readPackageEntry(int offset) クラス・ファイル内で指定されたオフセットでインデックスが指定されたパッケージ・エントリを返します。- パラメータ:
offset
- クラス・ファイル内のインデックスのオフセット- 戻り値:
- クラス・ファイル内で指定されたオフセットでインデックスが指定されたパッケージ・エントリ
- 例外:
ConstantPoolExceptionPREVIEW
- 索引が定数プール・サイズの範囲外であるか、ゼロであるか、または索引がパッケージ・エントリに対応していない場合
-
readClassEntry
ClassEntryPREVIEW readClassEntry(int offset) クラス・ファイル内で指定されたオフセットでインデックスが指定されたクラス・エントリを返します。- パラメータ:
offset
- クラス・ファイル内のインデックスのオフセット- 戻り値:
- クラス・ファイル内で指定されたオフセットでインデックスが指定されたクラス・エントリ
- 例外:
ConstantPoolExceptionPREVIEW
- 索引が定数プール・サイズの範囲外であるか、ゼロであるか、または索引がクラス・エントリに対応していない場合
-
readNameAndTypeEntry
NameAndTypeEntryPREVIEW readNameAndTypeEntry(int offset) クラス・ファイル内で指定されたオフセットでインデックスが指定された名前とタイプのエントリを返します。- パラメータ:
offset
- クラス・ファイル内のインデックスのオフセット- 戻り値:
- クラス・ファイル内の指定されたオフセットでインデックスが指定された名前と型のエントリ
- 例外:
ConstantPoolExceptionPREVIEW
- 索引が定数プール・サイズの範囲外であるか、ゼロであるか、または索引が名前とタイプのエントリに対応していない場合
-
readMethodHandleEntry
MethodHandleEntryPREVIEW readMethodHandleEntry(int offset) クラス・ファイル内で指定されたオフセットでインデックスが指定されたメソッド・ハンドル・エントリを返します。- パラメータ:
offset
- クラス・ファイル内のインデックスのオフセット- 戻り値:
- クラス・ファイル内で指定されたオフセットでインデックスが指定されたメソッド・ハンドル・エントリ
- 例外:
ConstantPoolExceptionPREVIEW
- 索引が定数プール・サイズの範囲外であるか、ゼロであるか、または索引がメソッド・ハンドル・エントリに対応していない場合
-
readU1
int readU1(int offset) クラス・ファイル内の指定されたオフセットにある符号なしバイトを返します。- パラメータ:
offset
- クラス・ファイル内のオフセット- 戻り値:
- クラス・ファイル内で指定されたオフセットにある符号なしバイト
-
readU2
int readU2(int offset) クラス・ファイル内で指定されたオフセットにある符号なしshortを返します。- パラメータ:
offset
- クラス・ファイル内のオフセット- 戻り値:
- クラス・ファイル内で指定されたオフセットにある符号なしshort
-
readS1
int readS1(int offset) クラス・ファイル内の指定されたオフセットにある符号付きバイトを返します。- パラメータ:
offset
- クラス・ファイル内のオフセット- 戻り値:
- クラス・ファイル内で指定されたオフセットにある符号付きバイト
-
readS2
int readS2(int offset) クラス・ファイル内の指定されたオフセットにある符号付きバイトを返します。- パラメータ:
offset
- クラス・ファイル内のオフセット- 戻り値:
- クラス・ファイル内で指定されたオフセットにある符号付きバイト
-
readInt
int readInt(int offset) クラス・ファイル内で指定されたオフセットにある符号付き整数を返します。- パラメータ:
offset
- クラス・ファイル内のオフセット- 戻り値:
- クラス・ファイル内で指定されたオフセットにある符号付きint
-
readLong
long readLong(int offset) クラス・ファイル内の指定されたオフセットで符号付き長を返します。- パラメータ:
offset
- クラス・ファイル内のオフセット- 戻り値:
- クラス・ファイル内の指定されたオフセットでの符号付きlong
-
readFloat
float readFloat(int offset) クラス・ファイル内で指定されたオフセットにあるfloat値を返します。- パラメータ:
offset
- クラス・ファイル内のオフセット- 戻り値:
- クラス・ファイル内で指定されたオフセットにあるfloat値
-
readDouble
double readDouble(int offset) クラス・ファイル内で指定されたオフセットにあるdouble値を返します。- パラメータ:
offset
- クラス・ファイル内のオフセット- 戻り値:
- クラス・ファイル内で指定されたオフセットにあるdouble値
-
readBytes
byte[] readBytes(int offset, int len) クラス・ファイルの指定された範囲にあるバイトのコピーを返します。- パラメータ:
offset
- クラス・ファイル内のオフセットlen
- 範囲の長さ- 戻り値:
- クラス・ファイル内の指定された範囲にあるバイトのコピー
-
copyBytesTo
-
compare
-
ClassReader
を使用できます。