- すべてのスーパー・インタフェース:
ClassFileBuilderPREVIEW<ClassElementPREVIEW,
,ClassBuilderPREVIEW> Consumer<ClassElementPREVIEW>
public sealed interface ClassBuilder extends ClassFileBuilderPREVIEW<ClassElementPREVIEW,ClassBuilderPREVIEW>
ClassBuilder
は、JavaプラットフォームのプレビューAPIです。
プレビュー機能は、今後のリリースで削除するか、Javaプラットフォームの永続機能にアップグレードすることができます。
クラス・ファイルのビルダー。 ビルダーは直接作成されず、
ClassFile.build(ClassDesc, Consumer)
PREVIEWなどのメソッドによってハンドラに渡されるか、クラス変換に渡されます。 クラス・ファイルの要素は、抽象的に(ClassElement
PREVIEWをClassFileBuilder.with(ClassFileElement)
PREVIEWに渡す)で指定することも、様々なwithXxx
メソッドをコールして具体的に指定することもできます。 - 導入されたバージョン:
- 22
- 関連項目:
-
メソッドのサマリー
修飾子と型メソッド説明original()
このクラス・ビルダーが一部のClassModel
PREVIEWの変換を表す場合、変換されるクラスを表すClassModel
PREVIEWを返します。transformField
(FieldModelPREVIEW field, FieldTransformPREVIEW transform) フィールドを別のクラスから変換してフィールドを追加します。transformMethod
(MethodModelPREVIEW method, MethodTransformPREVIEW transform) 別のクラスからメソッドを変換してメソッドを追加します。default ClassBuilderPREVIEW
フィールドを追加しますwithField
(Utf8EntryPREVIEW name, Utf8EntryPREVIEW descriptor, Consumer<? super FieldBuilderPREVIEW> handler) フィールドを追加しますdefault ClassBuilderPREVIEW
フィールドを追加しますdefault ClassBuilderPREVIEW
フィールドを追加しますdefault ClassBuilderPREVIEW
withFlags
(int flags) クラス・ファイル・アクセス・フラグを設定します。default ClassBuilderPREVIEW
withFlags
(AccessFlag... flags) クラス・ファイル・アクセス・フラグを設定します。default ClassBuilderPREVIEW
withInterfaces
(ClassEntryPREVIEW... interfaces) このクラスのインタフェースを設定します。default ClassBuilderPREVIEW
withInterfaces
(List<ClassEntryPREVIEW> interfaces) このクラスのインタフェースを設定します。default ClassBuilderPREVIEW
withInterfaceSymbols
(ClassDesc... interfaces) このクラスのインタフェースを設定します。default ClassBuilderPREVIEW
withInterfaceSymbols
(List<ClassDesc> interfaces) このクラスのインタフェースを設定します。withMethod
(Utf8EntryPREVIEW name, Utf8EntryPREVIEW descriptor, int methodFlags, Consumer<? super MethodBuilderPREVIEW> handler) メソッドを追加します。default ClassBuilderPREVIEW
withMethod
(String name, MethodTypeDesc descriptor, int methodFlags, Consumer<? super MethodBuilderPREVIEW> handler) メソッドを追加します。default ClassBuilderPREVIEW
withMethodBody
(Utf8EntryPREVIEW name, Utf8EntryPREVIEW descriptor, int methodFlags, Consumer<? super CodeBuilderPREVIEW> handler) Code
属性のみを持つメソッドを追加します。default ClassBuilderPREVIEW
withMethodBody
(String name, MethodTypeDesc descriptor, int methodFlags, Consumer<? super CodeBuilderPREVIEW> handler) CodeAttribute
PREVIEWのみを含むメソッドを追加します。default ClassBuilderPREVIEW
withSuperclass
(ClassEntryPREVIEW superclassEntry) このクラスのスーパークラスを設定します。default ClassBuilderPREVIEW
withSuperclass
(ClassDesc desc) このクラスのスーパークラスを設定します。default ClassBuilderPREVIEW
withVersion
(int major, int minor) クラス・ファイルのバージョンを設定します。インタフェースjava.lang.classfile.ClassFileBuilderPREVIEWで宣言されたメソッド
accept, canWriteDirect, constantPool, transform, with
-
メソッドの詳細
-
original
Optional<ClassModelPREVIEW> original()このクラス・ビルダーが一部のClassModel
PREVIEWの変換を表す場合、変換されるクラスを表すClassModel
PREVIEWを返します。- 戻り値:
- このクラス・ビルダーが一部の
ClassModel
PREVIEWの変換を表す場合、変換されるクラスを表すClassModel
PREVIEW
-
withVersion
default ClassBuilderPREVIEW withVersion(int major, int minor) クラス・ファイルのバージョンを設定します。- パラメータ:
major
- メジャー・バージョン番号minor
- マイナー・バージョン番号- 戻り値:
- このビルダー
-
withFlags
default ClassBuilderPREVIEW withFlags(int flags) クラス・ファイル・アクセス・フラグを設定します。- パラメータ:
flags
- ビット・マスクとしてのアクセス・フラグ- 戻り値:
- このビルダー
-
withFlags
default ClassBuilderPREVIEW withFlags(AccessFlag... flags) クラス・ファイル・アクセス・フラグを設定します。- パラメータ:
flags
- アクセス・フラグ- 戻り値:
- このビルダー
-
withSuperclass
default ClassBuilderPREVIEW withSuperclass(ClassEntryPREVIEW superclassEntry) このクラスのスーパークラスを設定します。- パラメータ:
superclassEntry
- スーパークラス- 戻り値:
- このビルダー
-
withSuperclass
default ClassBuilderPREVIEW withSuperclass(ClassDesc desc) このクラスのスーパークラスを設定します。- パラメータ:
desc
- スーパークラス- 戻り値:
- このビルダー
- 例外:
IllegalArgumentException
-desc
がプリミティブ型を表す場合
-
withInterfaces
default ClassBuilderPREVIEW withInterfaces(List<ClassEntryPREVIEW> interfaces) このクラスのインタフェースを設定します。- パラメータ:
interfaces
- インタフェース- 戻り値:
- このビルダー
-
withInterfaces
default ClassBuilderPREVIEW withInterfaces(ClassEntryPREVIEW... interfaces) このクラスのインタフェースを設定します。- パラメータ:
interfaces
- インタフェース- 戻り値:
- このビルダー
-
withInterfaceSymbols
default ClassBuilderPREVIEW withInterfaceSymbols(List<ClassDesc> interfaces) このクラスのインタフェースを設定します。- パラメータ:
interfaces
- インタフェース- 戻り値:
- このビルダー
-
withInterfaceSymbols
default ClassBuilderPREVIEW withInterfaceSymbols(ClassDesc... interfaces) このクラスのインタフェースを設定します。- パラメータ:
interfaces
- インタフェース- 戻り値:
- このビルダー
-
withField
ClassBuilderPREVIEW withField(Utf8EntryPREVIEW name, Utf8EntryPREVIEW descriptor, Consumer<? super FieldBuilderPREVIEW> handler) フィールドを追加します- パラメータ:
name
- フィールドの名前descriptor
- フィールド記述子handler
- フィールドの内容をさらに定義できるFieldBuilder
PREVIEWを受け取るハンドラ- 戻り値:
- このビルダー
-
withField
-
withField
default ClassBuilderPREVIEW withField(String name, ClassDesc descriptor, Consumer<? super FieldBuilderPREVIEW> handler) フィールドを追加します- パラメータ:
name
- フィールドの名前descriptor
- フィールド記述子handler
- フィールドの内容をさらに定義できるFieldBuilder
PREVIEWを受け取るハンドラ- 戻り値:
- このビルダー
-
withField
default ClassBuilderPREVIEW withField(String name, ClassDesc descriptor, int flags) フィールドを追加します- パラメータ:
name
- フィールドの名前descriptor
- フィールド記述子flags
- このフィールドのアクセス・フラグ- 戻り値:
- このビルダー
-
transformField
ClassBuilderPREVIEW transformField(FieldModelPREVIEW field, FieldTransformPREVIEW transform) フィールドを別のクラスから変換してフィールドを追加します。- 実装上のノート:
このメソッドは次のように動作します:
withField(field.fieldName(), field.fieldType(), b -> b.transformField(field, transform));
- パラメータ:
field
- 変換するフィールドtransform
- フィールドに適用する変換- 戻り値:
- このビルダー
-
withMethod
ClassBuilderPREVIEW withMethod(Utf8EntryPREVIEW name, Utf8EntryPREVIEW descriptor, int methodFlags, Consumer<? super MethodBuilderPREVIEW> handler) メソッドを追加します。- パラメータ:
name
- メソッドの名前descriptor
- メソッド記述子methodFlags
- アクセス・フラグhandler
- メソッドの内容をさらに定義できるMethodBuilder
PREVIEWを受け取るハンドラ- 戻り値:
- このビルダー
-
withMethodBody
default ClassBuilderPREVIEW withMethodBody(Utf8EntryPREVIEW name, Utf8EntryPREVIEW descriptor, int methodFlags, Consumer<? super CodeBuilderPREVIEW> handler) Code
属性のみを持つメソッドを追加します。- パラメータ:
name
- メソッドの名前descriptor
- メソッド記述子methodFlags
- アクセス・フラグhandler
- メソッド本文の内容を定義できるCodeBuilder
PREVIEWを受け取るハンドラ- 戻り値:
- このビルダー
-
withMethod
default ClassBuilderPREVIEW withMethod(String name, MethodTypeDesc descriptor, int methodFlags, Consumer<? super MethodBuilderPREVIEW> handler) メソッドを追加します。- パラメータ:
name
- メソッドの名前descriptor
- メソッド記述子methodFlags
- アクセス・フラグhandler
- メソッドの内容をさらに定義できるMethodBuilder
PREVIEWを受け取るハンドラ- 戻り値:
- このビルダー
-
withMethodBody
default ClassBuilderPREVIEW withMethodBody(String name, MethodTypeDesc descriptor, int methodFlags, Consumer<? super CodeBuilderPREVIEW> handler) CodeAttribute
PREVIEWのみを含むメソッドを追加します。- パラメータ:
name
- メソッドの名前descriptor
- メソッド記述子methodFlags
- アクセス・フラグhandler
- メソッド本文の内容を定義できるCodeBuilder
PREVIEWを受け取るハンドラ- 戻り値:
- このビルダー
-
transformMethod
ClassBuilderPREVIEW transformMethod(MethodModelPREVIEW method, MethodTransformPREVIEW transform) 別のクラスからメソッドを変換してメソッドを追加します。- 実装上のノート:
このメソッドは次のように動作します:
withMethod(method.methodName(), method.methodType(), b -> b.transformMethod(method, transform));
- パラメータ:
method
- 変換されるメソッドtransform
- メソッドに適用する変換- 戻り値:
- このビルダー
-
ClassBuilder
を使用できます。