インタフェースClassBuilder

すべてのスーパー・インタフェース:
ClassFileBuilderPREVIEW<ClassElementPREVIEW,ClassBuilderPREVIEW>, Consumer<ClassElementPREVIEW>

public sealed interface ClassBuilder extends ClassFileBuilderPREVIEW<ClassElementPREVIEW,ClassBuilderPREVIEW>
ClassBuilderは、JavaプラットフォームのプレビューAPIです。
プレビュー機能が有効な場合のみ、プログラムでClassBuilderを使用できます。
プレビュー機能は、今後のリリースで削除するか、Javaプラットフォームの永続機能にアップグレードすることができます。
クラス・ファイルのビルダー。 ビルダーは直接作成されず、ClassFile.build(ClassDesc, Consumer)PREVIEWなどのメソッドによってハンドラに渡されるか、クラス変換に渡されます。 クラス・ファイルの要素は、抽象的に(ClassElementPREVIEWClassFileBuilder.with(ClassFileElement)PREVIEWに渡す)で指定することも、様々なwithXxxメソッドをコールして具体的に指定することもできます。
導入されたバージョン:
22
関連項目:
  • メソッドの詳細

    • original

      このクラス・ビルダーが一部のClassModelPREVIEWの変換を表す場合、変換されるクラスを表すClassModelPREVIEWを返します。
      戻り値:
      このクラス・ビルダーが一部のClassModelPREVIEWの変換を表す場合、変換されるクラスを表すClassModelPREVIEW
    • 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 - フィールドの内容をさらに定義できるFieldBuilderPREVIEWを受け取るハンドラ
      戻り値:
      このビルダー
    • withField

      default ClassBuilderPREVIEW withField(Utf8EntryPREVIEW name, Utf8EntryPREVIEW descriptor, int flags)
      フィールドを追加します
      パラメータ:
      name - フィールドの名前
      descriptor - フィールド記述子
      flags - このフィールドのアクセス・フラグ
      戻り値:
      このビルダー
    • withField

      default ClassBuilderPREVIEW withField(String name, ClassDesc descriptor, Consumer<? super FieldBuilderPREVIEW> handler)
      フィールドを追加します
      パラメータ:
      name - フィールドの名前
      descriptor - フィールド記述子
      handler - フィールドの内容をさらに定義できるFieldBuilderPREVIEWを受け取るハンドラ
      戻り値:
      このビルダー
    • 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 - メソッドの内容をさらに定義できるMethodBuilderPREVIEWを受け取るハンドラ
      戻り値:
      このビルダー
    • withMethodBody

      default ClassBuilderPREVIEW withMethodBody(Utf8EntryPREVIEW name, Utf8EntryPREVIEW descriptor, int methodFlags, Consumer<? super CodeBuilderPREVIEW> handler)
      Code属性のみを持つメソッドを追加します。
      パラメータ:
      name - メソッドの名前
      descriptor - メソッド記述子
      methodFlags - アクセス・フラグ
      handler - メソッド本文の内容を定義できるCodeBuilderPREVIEWを受け取るハンドラ
      戻り値:
      このビルダー
    • withMethod

      default ClassBuilderPREVIEW withMethod(String name, MethodTypeDesc descriptor, int methodFlags, Consumer<? super MethodBuilderPREVIEW> handler)
      メソッドを追加します。
      パラメータ:
      name - メソッドの名前
      descriptor - メソッド記述子
      methodFlags - アクセス・フラグ
      handler - メソッドの内容をさらに定義できるMethodBuilderPREVIEWを受け取るハンドラ
      戻り値:
      このビルダー
    • withMethodBody

      default ClassBuilderPREVIEW withMethodBody(String name, MethodTypeDesc descriptor, int methodFlags, Consumer<? super CodeBuilderPREVIEW> handler)
      CodeAttributePREVIEWのみを含むメソッドを追加します。
      パラメータ:
      name - メソッドの名前
      descriptor - メソッド記述子
      methodFlags - アクセス・フラグ
      handler - メソッド本文の内容を定義できるCodeBuilderPREVIEWを受け取るハンドラ
      戻り値:
      このビルダー
    • transformMethod

      ClassBuilderPREVIEW transformMethod(MethodModelPREVIEW method, MethodTransformPREVIEW transform)
      別のクラスからメソッドを変換してメソッドを追加します。
      実装上のノート:

      このメソッドは次のように動作します:

          withMethod(method.methodName(), method.methodType(),
                     b -> b.transformMethod(method, transform));
      

      パラメータ:
      method - 変換されるメソッド
      transform - メソッドに適用する変換
      戻り値:
      このビルダー