インタフェースClassModel

すべてのスーパー・インタフェース:
AttributedElement, ClassFileElement, CompoundElement<ClassElement>, Iterable<ClassElement>

public sealed interface ClassModel extends CompoundElement<ClassElement>, AttributedElement
classファイルをモデル化します。 classファイルは、ClassElement「組成」として表示することも、 classファイルの特定の部分のみが必要な場合はアクセッサ・メソッドを介してランダムにアクセスすることもできます。

ClassFile.parse(byte[])を使用して、 classファイルのバイナリ・データをモデルに解析し、ClassModelを取得します。

classファイルを作成するには、ClassFile.build(ClassDesc, Consumer)を使用します。 ClassFile.transformClass(ClassModel, ClassTransform)では、元のクラス要素を選択的に処理し、結果をクラス・ビルダーに指示することで、新しいクラスを作成できます。

クラスは属性を保持し、そのほとんどはメンバー要素としてアクセスできます。 BootstrapMethodsAttributeは、「定数プール」の一部としてモデル化されるため、「明示的な属性読み取り」を介してのみアクセスできます。

Java Virtual Machine仕様を参照してください:
4.1 ClassFile構造
導入されたバージョン:
24
関連項目:
  • メソッドの詳細

    • constantPool

      ConstantPool constantPool()
      このクラスの定数プールを返します。
      戻り値:
      このクラスの定数プール
      関連項目:
    • flags

      AccessFlags flags()
      アクセス・フラグを返します。
      戻り値:
      アクセス・フラグ
      関連項目:
    • thisClass

      ClassEntry thisClass()
      このクラスの名前を記述する定数プール・エントリを返します。
      戻り値:
      このクラスの名前を記述する定数プール・エントリ
    • majorVersion

      int majorVersion()
      このクラスのメジャー・バージョンを返します。 符号なしshort [0, 65535]の範囲内です。
      戻り値:
      このクラスのメジャー・バージョン
      関連項目:
    • minorVersion

      int minorVersion()
      このクラスのマイナー・バージョンを返します。 符号なしshort [0, 65535]の範囲内です。
      戻り値:
      このクラスのマイナー・バージョン
      関連項目:
    • fields

      List<FieldModel> fields()
      このクラスのフィールドを返します。
      戻り値:
      このクラスのフィールド
    • methods

      List<MethodModel> methods()
      このクラスのメソッドを返します。
      戻り値:
      このクラスのメソッド
    • superclass

      Optional<ClassEntry> superclass()
      このクラスのスーパークラス(存在する場合)を返します。 「モジュール記述子」またはObjectクラスを表す場合、このclassファイルにはスーパークラスがない可能性があります。それ以外の場合は、スーパークラスが必要です。 これがインタフェースの場合、スーパークラスはObjectである必要があります。
      戻り値:
      このクラスのスーパークラス(ある場合)
      関連項目:
    • interfaces

      List<ClassEntry> interfaces()
      このクラスによって実装されたインタフェースを返します。
      戻り値:
      このクラスによって実装されるインタフェース
      関連項目:
    • isModuleInfo

      boolean isModuleInfo()
      このclassファイルがモジュール記述子かどうかを返します。
      戻り値:
      このclassファイルがモジュール記述子かどうか
      関連項目: