インタフェースClassFile
public sealed interface ClassFile
class
ファイルを解析、変換および生成する機能を提供します。 ClassFile
は、解析および生成の実行方法を条件とする一連のオプションを含むコンテキストです。 - 導入されたバージョン:
- 24
-
ネストされたクラスのサマリー
ネストされたクラス修飾子と型インタフェース説明static interface
class
ファイルを解析するためのユーザー定義属性について説明するオプション。static enum
変換後に正確性を検証できない属性を保持するか破棄するかを示すオプションです。static interface
スタック・マップの生成時またはクラスの検証時に使用するクラス階層リゾルバを説明するオプション。static enum
class
ファイルの変換時に元の定数プールから拡張するかどうかを示すオプション。static enum
スタック・マップ生成にアクセスできないコードにパッチを適用するかどうかを示すオプション。static enum
「バインドされていないラベル」をフィルタし、可能な場合はその包含構造を削除するかどうかを示すオプション。static enum
CodeModel
またはCodeBuilder
のトラバースでデバッグPseudoInstruction
を処理するか破棄するかを指定するオプション。static enum
CodeModel
またはCodeBuilder
のトラバースでLineNumber
を処理するか破棄するかを示すオプション。static interface
class
ファイルの解析または書込みに影響するオプション。static enum
必要に応じて、短いジャンプを自動的に同等の指示に書き換えるかどうかを示すオプション。static enum
スタック・マップを生成するかどうかを説明するオプションです。 -
フィールドのサマリー
フィールド修飾子と型フィールド説明static final int
AccessFlag.ABSTRACT
アクセスおよびプロパティ修飾子のビット・マスク。static final int
AccessFlag.ANNOTATION
アクセスおよびプロパティ修飾子のビット・マスク。static final int
AccessFlag.BRIDGE
アクセスおよびプロパティ修飾子のビット・マスク。static final int
AccessFlag.ENUM
アクセスおよびプロパティ修飾子のビット・マスク。static final int
AccessFlag.FINAL
アクセスおよびプロパティ修飾子のビット・マスク。static final int
AccessFlag.INTERFACE
アクセスおよびプロパティ修飾子のビット・マスク。static final int
AccessFlag.MANDATED
アクセスおよびプロパティ修飾子のビット・マスク。static final int
AccessFlag.MODULE
アクセスおよびプロパティ修飾子のビット・マスク。static final int
AccessFlag.NATIVE
アクセスおよびプロパティ修飾子のビット・マスク。static final int
AccessFlag.OPEN
アクセスおよびプロパティ修飾子のビット・マスク。static final int
AccessFlag.PRIVATE
アクセスおよびプロパティ修飾子のビット・マスク。static final int
AccessFlag.PROTECTED
アクセスおよびプロパティ修飾子のビット・マスク。static final int
AccessFlag.PUBLIC
アクセスおよびプロパティ修飾子のビット・マスク。static final int
AccessFlag.STATIC
アクセスおよびプロパティ修飾子のビット・マスク。static final int
AccessFlag.STATIC_PHASE
アクセスおよびプロパティ修飾子のビット・マスク。static final int
AccessFlag.STRICT
アクセスおよびプロパティ修飾子のビット・マスク。static final int
AccessFlag.SUPER
アクセスおよびプロパティ修飾子のビット・マスク。static final int
AccessFlag.SYNCHRONIZED
アクセスおよびプロパティ修飾子のビット・マスク。static final int
AccessFlag.SYNTHETIC
アクセスおよびプロパティ修飾子のビット・マスク。static final int
AccessFlag.TRANSIENT
アクセスおよびプロパティ修飾子のビット・マスク。static final int
AccessFlag.TRANSITIVE
アクセスおよびプロパティ修飾子のビット・マスク。static final int
AccessFlag.VARARGS
アクセスおよびプロパティ修飾子のビット・マスク。static final int
AccessFlag.VOLATILE
アクセスおよびプロパティ修飾子のビット・マスク。static final int
Java, 45の初期バージョンのクラス・メジャー・バージョン。static final int
Java SE 10、54によって導入されたクラス・メジャー・バージョン。static final int
Java SE 11、55によって導入されたクラス・メジャー・バージョン。static final int
Java SE 12、56によって導入されたクラス・メジャー・バージョン。static final int
Java SE 13、57によって導入されたクラス・メジャー・バージョン。static final int
Java SE 14、58によって導入されたクラス・メジャー・バージョン。static final int
Java SE 15、59によって導入されたクラス・メジャー・バージョン。static final int
Java SE 16、60によって導入されたクラスのメジャー・バージョン。static final int
Java SE 17、61によって導入されたクラス・メジャー・バージョン。static final int
Java SE 18、62によって導入されたクラスのメジャー・バージョン。static final int
Java SE 19、63によって導入されたクラスのメジャー・バージョン。static final int
Java 2 SE 1.2、46によって導入されたクラス・メジャー・バージョン。static final int
Java SE 20、64によって導入されたクラスのメジャー・バージョン。static final int
Java SE 21、65によって導入されたクラスのメジャー・バージョン。static final int
Java SE 22、66によって導入されたクラスのメジャー・バージョン。static final int
Java SE 23、67によって導入されたクラスのメジャー・バージョン。static final int
Java SE 24、68によって導入されたクラス・メジャー・バージョン。static final int
Java 2 SE 1.3、47によって導入されたクラス・メジャー・バージョン。static final int
Java 2 SE 1.4、48によって導入されたクラス・メジャー・バージョン。static final int
Java 2 SE 5.0、49によって導入されたクラス・メジャー・バージョン。static final int
Java SE 6、50によって導入されたクラスのメジャー・バージョン。static final int
Java SE 7、51によって導入されたクラスのメジャー・バージョン。static final int
Java SE 8、52で導入されたクラス・メジャー・バージョン。static final int
Java SE 9、53で導入されたクラス・メジャー・バージョン。static final int
class
ファイル形式0xcafebabeを識別するマジック番号。static final int
クラスがメジャー・バージョン56以上のJava SEリリースのプレビュー機能を使用することを示すマイナー・バージョン番号65535。 -
メソッドのサマリー
修飾子と型メソッド説明byte[]
build
(ClassEntry thisClassEntry, ConstantPoolBuilder constantPool, Consumer<? super ClassBuilder> handler) 指定された定数プール・ビルダーを使用して、class
ファイルをバイト配列に構築します。default byte[]
build
(ClassDesc thisClass, Consumer<? super ClassBuilder> handler) class
ファイルをバイト配列に構築します。default byte[]
buildModule
(ModuleAttribute moduleAttribute) モジュール記述子をバイト配列に構築します。default byte[]
buildModule
(ModuleAttribute moduleAttribute, Consumer<? super ClassBuilder> handler) モジュール記述子をバイト配列に構築します。default void
buildModuleTo
(Path path, ModuleAttribute moduleAttribute) モジュール記述子をファイルシステム内のファイルに構築します。default void
buildModuleTo
(Path path, ModuleAttribute moduleAttribute, Consumer<? super ClassBuilder> handler) モジュール記述子をファイルシステム内のファイルに構築します。default void
buildTo
(Path path, ClassEntry thisClassEntry, ConstantPoolBuilder constantPool, Consumer<? super ClassBuilder> handler) 指定された定数プール・ビルダーを使用して、ファイル・システム内のファイルにclass
ファイルをビルドします。default void
buildTo
(Path path, ClassDesc thisClass, Consumer<ClassBuilder> handler) class
ファイルをファイル・システム内のファイルに構築します。static int
現在のランタイムでサポートされている最新のクラスのメジャー・バージョンを返します。static int
現在のランタイムでサポートされている最新のクラス・マイナー・バージョンを返します。static ClassFile
of()
デフォルト・オプションを使用してコンテキストを返します。static ClassFile
of
(ClassFile.Option... options) オプションがデフォルトから変更されたコンテキストを返します。parse
(byte[] bytes) class
ファイルをClassModel
に解析します。default ClassModel
class
をClassModel
に解析します。default byte[]
transformClass
(ClassModel model, ClassTransform transform) ClassTransform
に従って、1つのclass
ファイルを新しいclass
ファイルに変換します。byte[]
transformClass
(ClassModel model, ClassEntry newClassName, ClassTransform transform) ClassTransform
に従って、1つのclass
ファイルを新しいclass
ファイルに変換します。default byte[]
transformClass
(ClassModel model, ClassDesc newClassName, ClassTransform transform) ClassTransform
に従って、1つのclass
ファイルを新しいclass
ファイルに変換します。verify
(byte[] bytes) class
ファイルを確認します。verify
(ClassModel model) class
ファイルを確認します。default List
<VerifyError> class
ファイルを確認します。withOptions
(ClassFile.Option... options) このコンテキストから変更されたオプションを含むコンテキストを返します。
-
フィールド詳細
-
MAGIC_NUMBER
static final int MAGIC_NUMBERclass
ファイル形式0xcafebabeを識別するマジック番号。 これは、ビッグ・エンディアン4バイトの値です。- 関連項目:
-
ACC_PUBLIC
-
ACC_PROTECTED
-
ACC_PRIVATE
-
ACC_INTERFACE
-
ACC_ENUM
-
ACC_ANNOTATION
-
ACC_SUPER
-
ACC_ABSTRACT
-
ACC_VOLATILE
-
ACC_TRANSIENT
-
ACC_SYNTHETIC
-
ACC_STATIC
-
ACC_FINAL
-
ACC_SYNCHRONIZED
-
ACC_BRIDGE
-
ACC_VARARGS
-
ACC_NATIVE
-
ACC_STRICT
-
ACC_MODULE
-
ACC_OPEN
-
ACC_MANDATED
-
ACC_TRANSITIVE
-
ACC_STATIC_PHASE
-
JAVA_1_VERSION
static final int JAVA_1_VERSIONJava, 45の初期バージョンのクラス・メジャー・バージョン。- 関連項目:
-
JAVA_2_VERSION
static final int JAVA_2_VERSIONJava 2 SE 1.2、46によって導入されたクラス・メジャー・バージョン。- 関連項目:
-
JAVA_3_VERSION
static final int JAVA_3_VERSIONJava 2 SE 1.3、47によって導入されたクラス・メジャー・バージョン。- 関連項目:
-
JAVA_4_VERSION
static final int JAVA_4_VERSIONJava 2 SE 1.4、48によって導入されたクラス・メジャー・バージョン。- 関連項目:
-
JAVA_5_VERSION
static final int JAVA_5_VERSIONJava 2 SE 5.0、49によって導入されたクラス・メジャー・バージョン。- 関連項目:
-
JAVA_6_VERSION
static final int JAVA_6_VERSIONJava SE 6、50によって導入されたクラスのメジャー・バージョン。- 関連項目:
-
JAVA_7_VERSION
static final int JAVA_7_VERSIONJava SE 7、51によって導入されたクラスのメジャー・バージョン。- 関連項目:
-
JAVA_8_VERSION
static final int JAVA_8_VERSIONJava SE 8、52で導入されたクラス・メジャー・バージョン。- 関連項目:
-
JAVA_9_VERSION
static final int JAVA_9_VERSIONJava SE 9、53で導入されたクラス・メジャー・バージョン。- 関連項目:
-
JAVA_10_VERSION
static final int JAVA_10_VERSIONJava SE 10、54によって導入されたクラス・メジャー・バージョン。- 関連項目:
-
JAVA_11_VERSION
static final int JAVA_11_VERSIONJava SE 11、55によって導入されたクラス・メジャー・バージョン。- 関連項目:
-
JAVA_12_VERSION
static final int JAVA_12_VERSIONJava SE 12、56によって導入されたクラス・メジャー・バージョン。- 関連項目:
-
JAVA_13_VERSION
static final int JAVA_13_VERSIONJava SE 13、57によって導入されたクラス・メジャー・バージョン。- 関連項目:
-
JAVA_14_VERSION
static final int JAVA_14_VERSIONJava SE 14、58によって導入されたクラス・メジャー・バージョン。- 関連項目:
-
JAVA_15_VERSION
static final int JAVA_15_VERSIONJava SE 15、59によって導入されたクラス・メジャー・バージョン。- 関連項目:
-
JAVA_16_VERSION
static final int JAVA_16_VERSIONJava SE 16、60によって導入されたクラスのメジャー・バージョン。- 関連項目:
-
JAVA_17_VERSION
static final int JAVA_17_VERSIONJava SE 17、61によって導入されたクラス・メジャー・バージョン。- 関連項目:
-
JAVA_18_VERSION
static final int JAVA_18_VERSIONJava SE 18、62によって導入されたクラスのメジャー・バージョン。- 関連項目:
-
JAVA_19_VERSION
static final int JAVA_19_VERSIONJava SE 19、63によって導入されたクラスのメジャー・バージョン。- 関連項目:
-
JAVA_20_VERSION
static final int JAVA_20_VERSIONJava SE 20、64によって導入されたクラスのメジャー・バージョン。- 関連項目:
-
JAVA_21_VERSION
static final int JAVA_21_VERSIONJava SE 21、65によって導入されたクラスのメジャー・バージョン。- 関連項目:
-
JAVA_22_VERSION
static final int JAVA_22_VERSIONJava SE 22、66によって導入されたクラスのメジャー・バージョン。- 関連項目:
-
JAVA_23_VERSION
static final int JAVA_23_VERSIONJava SE 23、67によって導入されたクラスのメジャー・バージョン。- 関連項目:
-
JAVA_24_VERSION
static final int JAVA_24_VERSIONJava SE 24、68によって導入されたクラス・メジャー・バージョン。- 関連項目:
-
PREVIEW_MINOR_VERSION
static final int PREVIEW_MINOR_VERSIONクラスがメジャー・バージョン56以上のJava SEリリースのプレビュー機能を使用することを示すマイナー・バージョン番号65535。- 関連項目:
-
-
メソッドの詳細
-
of
static ClassFile of()デフォルト・オプションを使用してコンテキストを返します。ClassFile.Option
の各サブタイプでは、デフォルトを指定します。デフォルトの
ClassFile.AttributeMapperOption
およびClassFile.ClassHierarchyResolverOption
は、一部のclass
ファイルでは不適切で、解析エラーまたは生成エラーが発生する可能性があります。- 戻り値:
- デフォルト・オプションのあるコンテキスト
-
of
static ClassFile of(ClassFile.Option... options) オプションがデフォルトから変更されたコンテキストを返します。ClassFile.of().withOptions(options)
と同等です。- パラメータ:
options
- 必要な処理オプション- 戻り値:
- オプションがデフォルトから変更されたコンテキスト
-
withOptions
ClassFile withOptions(ClassFile.Option... options) このコンテキストから変更されたオプションを含むコンテキストを返します。- パラメータ:
options
- 必要な処理オプション- 戻り値:
- このコンテキストから変更されたオプションを含むコンテキスト
-
parse
ClassModel parse(byte[] bytes) class
ファイルをClassModel
に解析します。class
ファイルの解析のオンデマンドの性質により、戻されたモデルまたは構造階層のアクセッサによって戻される任意のアクセッサ・メソッド呼出しでIllegalArgumentException
がスローされる場合があります。- パラメータ:
bytes
-class
ファイルのバイト- 戻り値:
- クラス・モデル
- スロー:
IllegalArgumentException
-class
ファイルが不正な形式の場合、または現在のランタイムによってバージョン「サポートされていません」の場合
-
parse
default ClassModel parse(Path path) throws IOException class
をClassModel
に解析します。class
ファイルの解析のオンデマンドの性質により、戻されたモデルまたは構造階層のアクセッサによって戻される任意のアクセッサ・メソッド呼出しでIllegalArgumentException
がスローされる場合があります。- パラメータ:
path
-class
ファイルへのパス- 戻り値:
- クラス・モデル
- スロー:
IOException
- 入出力エラーが発生した場合IllegalArgumentException
-class
ファイルが不正な形式の場合、または現在のランタイムによってバージョン「サポートされていません」の場合- 関連項目:
-
build
default byte[] build(ClassDesc thisClass, Consumer<? super ClassBuilder> handler) class
ファイルをバイト配列に構築します。- パラメータ:
thisClass
- 構築するクラスの名前handler
-ClassBuilder
を受信するハンドラ- 戻り値:
class
ファイル・バイト- スロー:
IllegalArgumentException
-thisClass
がプリミティブ型を表す場合、またはビルディングで障害が発生した場合
-
build
byte[] build(ClassEntry thisClassEntry, ConstantPoolBuilder constantPool, Consumer<? super ClassBuilder> handler) 指定された定数プール・ビルダーを使用して、class
ファイルをバイト配列に構築します。- パラメータ:
thisClassEntry
- 構築するクラスの名前constantPool
- 定数プール・ビルダーhandler
-ClassBuilder
を受信するハンドラ- 戻り値:
class
ファイル・バイト- スロー:
IllegalArgumentException
- ビルドが失敗した場合
-
buildTo
default void buildTo(Path path, ClassDesc thisClass, Consumer<ClassBuilder> handler) throws IOException class
ファイルをファイル・システム内のファイルに構築します。- パラメータ:
path
- 書き込むファイルへのパスthisClass
- 構築するクラスの名前handler
-ClassBuilder
を受信するハンドラ- スロー:
IOException
- 入出力エラーが発生した場合IllegalArgumentException
- ビルドが失敗した場合
-
buildTo
default void buildTo(Path path, ClassEntry thisClassEntry, ConstantPoolBuilder constantPool, Consumer<? super ClassBuilder> handler) throws IOException 指定された定数プール・ビルダーを使用して、ファイル・システム内のファイルにclass
ファイルをビルドします。- パラメータ:
path
- 書き込むファイルへのパスthisClassEntry
- 構築するクラスの名前constantPool
- 定数プール・ビルダーhandler
-ClassBuilder
を受信するハンドラ- スロー:
IOException
- 入出力エラーが発生した場合IllegalArgumentException
- ビルドが失敗した場合
-
buildModule
default byte[] buildModule(ModuleAttribute moduleAttribute) モジュール記述子をバイト配列に構築します。- パラメータ:
moduleAttribute
-Module
属性- 戻り値:
class
ファイル・バイト- スロー:
IllegalArgumentException
- ビルドが失敗した場合
-
buildModule
default byte[] buildModule(ModuleAttribute moduleAttribute, Consumer<? super ClassBuilder> handler) モジュール記述子をバイト配列に構築します。- パラメータ:
moduleAttribute
-Module
属性handler
-ClassBuilder
を受信するハンドラ- 戻り値:
class
ファイル・バイト- スロー:
IllegalArgumentException
- ビルドが失敗した場合
-
buildModuleTo
default void buildModuleTo(Path path, ModuleAttribute moduleAttribute) throws IOException モジュール記述子をファイルシステム内のファイルに構築します。- パラメータ:
path
- 書き込むファイルmoduleAttribute
-Module
属性- スロー:
IOException
- 入出力エラーが発生した場合IllegalArgumentException
- ビルドが失敗した場合
-
buildModuleTo
default void buildModuleTo(Path path, ModuleAttribute moduleAttribute, Consumer<? super ClassBuilder> handler) throws IOException モジュール記述子をファイルシステム内のファイルに構築します。- パラメータ:
path
- 書き込むファイルmoduleAttribute
-Module
属性handler
-ClassBuilder
を受信するハンドラ- スロー:
IOException
- 入出力エラーが発生した場合IllegalArgumentException
- ビルドが失敗した場合
-
transformClass
default byte[] transformClass(ClassModel model, ClassTransform transform) ClassTransform
に従って、1つのclass
ファイルを新しいclass
ファイルに変換します。 変換は、このクラスの各要素と、新しいクラスを構築するためのClassBuilder
を受け取ります。 変換は、要素が適合するように自由に保持、削除または置換できます。このメソッドは次のように動作します:
ConstantPoolBuilder cpb = ... this.build(model.thisClass(), cpb, clb -> clb.transform(model, transform));
cpb
はClassFile.ConstantPoolSharingOption
によって決定されます。- APIのノート:
- これは、
ClassBuilder.transformField(java.lang.classfile.FieldModel, java.lang.classfile.FieldTransform)
、ClassBuilder.transformMethod(java.lang.classfile.MethodModel, java.lang.classfile.MethodTransform)
、およびMethodBuilder.transformCode(java.lang.classfile.CodeModel, java.lang.classfile.CodeTransform)
との整合性のためにtransform
の代わりにtransformClass
という名前を付け、より汎用的で強力なClassFileBuilder.transform(java.lang.classfile.CompoundElement<E>, java.lang.classfile.ClassFileTransform<?, E, B>)
と区別します。 - パラメータ:
model
- 変換するクラス・モデルtransform
- 変換- 戻り値:
- 新しいクラスのバイト数
- スロー:
IllegalArgumentException
- ビルドが失敗した場合- 関連項目:
-
transformClass
default byte[] transformClass(ClassModel model, ClassDesc newClassName, ClassTransform transform) ClassTransform
に従って、1つのclass
ファイルを新しいclass
ファイルに変換します。 変換は、このクラスの各要素と、新しいクラスを構築するためのClassBuilder
を受け取ります。 変換は、要素が適合するように自由に保持、削除または置換できます。- APIのノート:
- これは、
ClassBuilder.transformField(java.lang.classfile.FieldModel, java.lang.classfile.FieldTransform)
、ClassBuilder.transformMethod(java.lang.classfile.MethodModel, java.lang.classfile.MethodTransform)
、およびMethodBuilder.transformCode(java.lang.classfile.CodeModel, java.lang.classfile.CodeTransform)
との整合性のためにtransform
の代わりにtransformClass
という名前を付け、より汎用的で強力なClassFileBuilder.transform(java.lang.classfile.CompoundElement<E>, java.lang.classfile.ClassFileTransform<?, E, B>)
と区別します。 - パラメータ:
model
- 変換するクラス・モデルnewClassName
- 新しいクラス名transform
- 変換- 戻り値:
- 新しいクラスのバイト数
- スロー:
IllegalArgumentException
- ビルドが失敗した場合- 関連項目:
-
transformClass
byte[] transformClass(ClassModel model, ClassEntry newClassName, ClassTransform transform) ClassTransform
に従って、1つのclass
ファイルを新しいclass
ファイルに変換します。 変換は、このクラスの各要素と、新しいクラスを構築するためのClassBuilder
を受け取ります。 変換は、要素が適合するように自由に保持、削除または置換できます。このメソッドは次のように動作します:
ConstantPoolBuilder cpb = ... this.build(newClassName, cpb, clb -> clb.transform(model, transform));
cpb
はClassFile.ConstantPoolSharingOption
によって決定されます。- APIのノート:
- これは、
ClassBuilder.transformField(java.lang.classfile.FieldModel, java.lang.classfile.FieldTransform)
、ClassBuilder.transformMethod(java.lang.classfile.MethodModel, java.lang.classfile.MethodTransform)
、およびMethodBuilder.transformCode(java.lang.classfile.CodeModel, java.lang.classfile.CodeTransform)
との整合性のためにtransform
の代わりにtransformClass
という名前を付け、より汎用的で強力なClassFileBuilder.transform(java.lang.classfile.CompoundElement<E>, java.lang.classfile.ClassFileTransform<?, E, B>)
と区別します。 - パラメータ:
model
- 変換するクラス・モデルnewClassName
- 新しいクラス名transform
- 変換- 戻り値:
- 新しいクラスのバイト数
- スロー:
IllegalArgumentException
- ビルドが失敗した場合- 関連項目:
-
verify
List<VerifyError> verify(ClassModel model) class
ファイルを確認します。 検出されたすべての検証エラーが返されます。- パラメータ:
model
- 検証するクラス・モデル- 戻り値:
- 検証エラーのリスト、またはエラーが見つからない場合は空のリスト
-
verify
List<VerifyError> verify(byte[] bytes) class
ファイルを確認します。 検出されたすべての検証エラーが返されます。- パラメータ:
bytes
- 検証するclass
ファイル・バイト- 戻り値:
- 検証エラーのリスト、またはエラーが見つからない場合は空のリスト
-
verify
default List<VerifyError> verify(Path path) throws IOException class
ファイルを確認します。 検出されたすべての検証エラーが返されます。- パラメータ:
path
- 検証するclass
ファイル・パス- 戻り値:
- 検証エラーのリスト、またはエラーが見つからない場合は空のリスト
- スロー:
IOException
- 入出力エラーが発生した場合
-
latestMajorVersion
static int latestMajorVersion()現在のランタイムでサポートされている最新のクラスのメジャー・バージョンを返します。- 戻り値:
- 現在のランタイムでサポートされている最新のクラスのメジャー・バージョン
-
latestMinorVersion
static int latestMinorVersion()現在のランタイムでサポートされている最新のクラス・マイナー・バージョンを返します。- APIのノート:
- メジャー・バージョンが
latestMajorVersion()
以外のclass
ファイルやプレビュー・マイナー・バージョンがサポートされていないため、現在のランタイムでプレビュー機能が有効になっている場合は、PREVIEW_MINOR_VERSION
はレポートされません。 - 戻り値:
- 現在のランタイムでサポートされている最新のクラス・マイナー・バージョン
-