インタフェースClassBuilder
- すべてのスーパー・インタフェース:
ClassFileBuilder<ClassElement, ClassBuilder>
,Consumer<ClassElement>
public sealed interface ClassBuilder extends ClassFileBuilder<ClassElement, ClassBuilder>
class
ファイルのビルダー。 ClassFile
は、このようなビルダーを構成するためのハンドラを受け入れる様々なbuild
メソッドを提供します。ClassFile.build(ClassDesc, Consumer)
は基本的な使用方法に十分ですが、ClassFile.build(ClassEntry, ConstantPoolBuilder, Consumer)
は「定数プール」に対するファイングレイン制御を可能にします。
class
ファイル形式の構造体に対するビルダーの使用に関する一般的なガイダンスおよび注意事項は、ClassFileBuilder
を参照してください。
- 導入されたバージョン:
- 24
- 関連項目:
-
メソッドのサマリー
修飾子と型メソッド説明transformField
(FieldModel field, FieldTransform transform) フィールドを別のクラスから変換してフィールドを追加します。transformMethod
(MethodModel method, MethodTransform transform) 別のクラスからメソッドを変換してメソッドを追加します。default ClassBuilder
アクセス・フラグのみを持つフィールドを追加します。withField
(Utf8Entry name, Utf8Entry descriptor, Consumer<? super FieldBuilder> handler) フィールドを追加しますdefault ClassBuilder
アクセス・フラグのみを持つフィールドを追加します。default ClassBuilder
withField
(String name, ClassDesc descriptor, Consumer<? super FieldBuilder> handler) フィールドを追加しますdefault ClassBuilder
withFlags
(int flags) このクラスのアクセス・フラグを設定します。default ClassBuilder
withFlags
(AccessFlag... flags) このクラスのアクセス・フラグを設定します。default ClassBuilder
withInterfaces
(ClassEntry... interfaces) このクラスのインタフェースを設定します。default ClassBuilder
withInterfaces
(List<ClassEntry> interfaces) このクラスのインタフェースを設定します。default ClassBuilder
withInterfaceSymbols
(ClassDesc... interfaces) このクラスのインタフェースを設定します。default ClassBuilder
withInterfaceSymbols
(List<ClassDesc> interfaces) このクラスのインタフェースを設定します。withMethod
(Utf8Entry name, Utf8Entry descriptor, int methodFlags, Consumer<? super MethodBuilder> handler) メソッドを追加します。default ClassBuilder
withMethod
(String name, MethodTypeDesc descriptor, int methodFlags, Consumer<? super MethodBuilder> handler) メソッドを追加します。default ClassBuilder
withMethodBody
(Utf8Entry name, Utf8Entry descriptor, int methodFlags, Consumer<? super CodeBuilder> handler) アクセス・フラグとCodeModel
のみを持つメソッドを追加します。default ClassBuilder
withMethodBody
(String name, MethodTypeDesc descriptor, int methodFlags, Consumer<? super CodeBuilder> handler) アクセス・フラグとCodeModel
のみを持つメソッドを追加します。default ClassBuilder
withSuperclass
(ClassEntry superclassEntry) このクラスのスーパークラスを設定します。default ClassBuilder
withSuperclass
(ClassDesc desc) このクラスのスーパークラスを設定します。default ClassBuilder
withVersion
(int major, int minor) このクラスのバージョンを設定します。インタフェースjava.lang.classfile.ClassFileBuilderで宣言されたメソッド
accept, constantPool, transform, with
-
メソッドの詳細
-
withVersion
default ClassBuilder withVersion(int major, int minor) このクラスのバージョンを設定します。- パラメータ:
major
- メジャー・バージョン番号minor
- マイナー・バージョン番号- 戻り値:
- このビルダー
- 関連項目:
-
withFlags
default ClassBuilder withFlags(int flags) このクラスのアクセス・フラグを設定します。- パラメータ:
flags
- ビット・マスクとしてのアクセス・フラグ- 戻り値:
- このビルダー
- 関連項目:
-
withFlags
default ClassBuilder withFlags(AccessFlag... flags) このクラスのアクセス・フラグを設定します。- パラメータ:
flags
- アクセス・フラグをフラグ列挙として- 戻り値:
- このビルダー
- スロー:
IllegalArgumentException
-AccessFlag.Location.CLASS
のロケーションにフラグを適用できない場合- 関連項目:
-
withSuperclass
default ClassBuilder withSuperclass(ClassEntry superclassEntry) このクラスのスーパークラスを設定します。- パラメータ:
superclassEntry
- スーパークラス- 戻り値:
- このビルダー
- 関連項目:
-
withSuperclass
default ClassBuilder withSuperclass(ClassDesc desc) このクラスのスーパークラスを設定します。- パラメータ:
desc
- スーパークラス- 戻り値:
- このビルダー
- スロー:
IllegalArgumentException
-desc
がプリミティブ型を表す場合- 関連項目:
-
withInterfaces
default ClassBuilder withInterfaces(List<ClassEntry> interfaces) このクラスのインタフェースを設定します。- パラメータ:
interfaces
- インタフェース- 戻り値:
- このビルダー
- 関連項目:
-
withInterfaces
default ClassBuilder withInterfaces(ClassEntry... interfaces) このクラスのインタフェースを設定します。- パラメータ:
interfaces
- インタフェース- 戻り値:
- このビルダー
- 関連項目:
-
withInterfaceSymbols
default ClassBuilder withInterfaceSymbols(List<ClassDesc> interfaces) このクラスのインタフェースを設定します。- パラメータ:
interfaces
- インタフェース- 戻り値:
- このビルダー
- スロー:
IllegalArgumentException
-interfaces
の要素がプリミティブである場合- 関連項目:
-
withInterfaceSymbols
default ClassBuilder withInterfaceSymbols(ClassDesc... interfaces) このクラスのインタフェースを設定します。- パラメータ:
interfaces
- インタフェース- 戻り値:
- このビルダー
- スロー:
IllegalArgumentException
-interfaces
の要素がプリミティブである場合- 関連項目:
-
withField
ClassBuilder withField(Utf8Entry name, Utf8Entry descriptor, Consumer<? super FieldBuilder> handler) フィールドを追加します- パラメータ:
name
- フィールド名descriptor
- フィールド記述子文字列handler
- フィールドの内容を提供するハンドラ- 戻り値:
- このビルダー
- 関連項目:
-
withField
default ClassBuilder withField(Utf8Entry name, Utf8Entry descriptor, int flags) アクセス・フラグのみを持つフィールドを追加します。- パラメータ:
name
- フィールド名descriptor
- フィールド記述子文字列flags
- このフィールドのアクセス・フラグをビット・マスクとして- 戻り値:
- このビルダー
- 関連項目:
-
withField
default ClassBuilder withField(String name, ClassDesc descriptor, Consumer<? super FieldBuilder> handler) フィールドを追加します- パラメータ:
name
- フィールド名descriptor
- シンボリック・フィールド記述子handler
- フィールドの内容を提供するハンドラ- 戻り値:
- このビルダー
- 関連項目:
-
withField
default ClassBuilder withField(String name, ClassDesc descriptor, int flags) アクセス・フラグのみを持つフィールドを追加します。- パラメータ:
name
- フィールド名descriptor
- シンボリック・フィールド記述子flags
- このフィールドのアクセス・フラグをビット・マスクとして- 戻り値:
- このビルダー
- 関連項目:
-
transformField
ClassBuilder transformField(FieldModel field, FieldTransform transform) フィールドを別のクラスから変換してフィールドを追加します。このメソッドは次のように動作します:
- パラメータ:
field
- 変換するフィールドtransform
- フィールドに適用する変換- 戻り値:
- このビルダー
- 関連項目:
-
withMethod
ClassBuilder withMethod(Utf8Entry name, Utf8Entry descriptor, int methodFlags, Consumer<? super MethodBuilder> handler) メソッドを追加します。ACC_STATIC
フラグのビットは、後でhandler
によって変更できず、methodFlags
を使用して設定する必要があります。- パラメータ:
name
- メソッド名descriptor
- メソッド記述子methodFlags
-ACC_STATIC
ビットが確実に設定されたビット・マスクとしてのアクセス・フラグhandler
- メソッドの内容を提供するハンドラ- 戻り値:
- このビルダー
- 関連項目:
-
withMethodBody
default ClassBuilder withMethodBody(Utf8Entry name, Utf8Entry descriptor, int methodFlags, Consumer<? super CodeBuilder> handler) アクセス・フラグとCodeModel
のみを持つメソッドを追加します。ACC_STATIC
フラグのビットは、後でhandler
によって変更できず、methodFlags
を使用して設定する必要があります。このメソッドは次のように動作します:
withMethod
(name, descriptor, methodFlags, mb -> mb.withCode
(handler))- パラメータ:
name
- メソッド名descriptor
- メソッド記述子methodFlags
-ACC_STATIC
ビットが確実に設定されたビット・マスクとしてのアクセス・フラグhandler
- メソッド本文の内容を提供するハンドラ- 戻り値:
- このビルダー
- 関連項目:
-
withMethod
default ClassBuilder withMethod(String name, MethodTypeDesc descriptor, int methodFlags, Consumer<? super MethodBuilder> handler) メソッドを追加します。ACC_STATIC
フラグのビットはhandler
で変更できず、methodFlags
で設定する必要があります。- パラメータ:
name
- メソッド名descriptor
- メソッド記述子methodFlags
-ACC_STATIC
ビットが確実に設定されたビット・マスクとしてのアクセス・フラグhandler
- メソッドの内容を提供するハンドラ- 戻り値:
- このビルダー
- 関連項目:
-
withMethodBody
default ClassBuilder withMethodBody(String name, MethodTypeDesc descriptor, int methodFlags, Consumer<? super CodeBuilder> handler) アクセス・フラグとCodeModel
のみを持つメソッドを追加します。ACC_STATIC
フラグのビットはhandler
で変更できず、methodFlags
で設定する必要があります。このメソッドは次のように動作します:
withMethod
(name, descriptor, methodFlags, mb -> mb.withCode
(handler))- パラメータ:
name
- メソッド名descriptor
- メソッド記述子methodFlags
-ACC_STATIC
ビットが確実に設定されたビット・マスクとしてのアクセス・フラグhandler
- メソッド本文の内容を提供するハンドラ- 戻り値:
- このビルダー
- 関連項目:
-
transformMethod
ClassBuilder transformMethod(MethodModel method, MethodTransform transform) 別のクラスからメソッドを変換してメソッドを追加します。 変換では、元のメソッドのACC_STATIC
フラグを変更できません。このメソッドは次のように動作します:
withMethod
(method.methodName(), method.methodType(), method.flags().flagMask(), mb -> mb.transform
(method, transform))- パラメータ:
method
- 変換されるメソッドtransform
- メソッドに適用する変換- 戻り値:
- このビルダー
- 関連項目:
-