インタフェース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 ClassBuilderwithField(String name, ClassDesc descriptor, Consumer<? super FieldBuilder> handler) フィールドを追加しますdefault ClassBuilderwithFlags(int flags) このクラスのアクセス・フラグを設定します。default ClassBuilderwithFlags(AccessFlag... flags) このクラスのアクセス・フラグを設定します。default ClassBuilderwithInterfaces(ClassEntry... interfaces) このクラスのインタフェースを設定します。default ClassBuilderwithInterfaces(List<ClassEntry> interfaces) このクラスのインタフェースを設定します。default ClassBuilderwithInterfaceSymbols(ClassDesc... interfaces) このクラスのインタフェースを設定します。default ClassBuilderwithInterfaceSymbols(List<ClassDesc> interfaces) このクラスのインタフェースを設定します。withMethod(Utf8Entry name, Utf8Entry descriptor, int methodFlags, Consumer<? super MethodBuilder> handler) メソッドを追加します。default ClassBuilderwithMethod(String name, MethodTypeDesc descriptor, int methodFlags, Consumer<? super MethodBuilder> handler) メソッドを追加します。default ClassBuilderwithMethodBody(Utf8Entry name, Utf8Entry descriptor, int methodFlags, Consumer<? super CodeBuilder> handler) アクセス・フラグとCodeModelのみを持つメソッドを追加します。default ClassBuilderwithMethodBody(String name, MethodTypeDesc descriptor, int methodFlags, Consumer<? super CodeBuilder> handler) アクセス・フラグとCodeModelのみを持つメソッドを追加します。default ClassBuilderwithSuperclass(ClassEntry superclassEntry) このクラスのスーパークラスを設定します。default ClassBuilderwithSuperclass(ClassDesc desc) このクラスのスーパークラスを設定します。default ClassBuilderwithVersion(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- メソッドに適用する変換- 戻り値:
- このビルダー
- 関連項目:
-