インタフェース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- メソッドに適用する変換- 戻り値:
- このビルダー
- 関連 目:
-