インタフェースAttributedElement

すべてのスーパー・インタフェース:
ClassFileElement
既知のすべてのサブインタフェース:
ClassModel, CodeAttribute, CodeModel, FieldModel, MethodModel, RecordComponentInfo

public sealed interface AttributedElement extends ClassFileElement permits ClassModel, CodeModel, FieldModel, MethodModel, RecordComponentInfo (not exhaustive)
classファイル、フィールド、メソッド、Code属性、レコード・コンポーネントなどの属性を持つclassファイル構造を記述するClassFileElement

特に指定がないかぎり、CompoundElementで検出できるほとんどの属性は、 ClassFileElementの対応する「メンバーシップ・サブインタフェース」を実装し、ClassFileBuilderに送信してビルド構造に統合できます。

Java Virtual Machine仕様を参照してください:
4.7 属性
シール済クラス階層グラフ:
AttributedElementのシール済クラス階層グラフAttributedElementのシール済クラス階層グラフ
導入されたバージョン:
24
関連項目:
  • メソッドの詳細

    • attributes

      List<Attribute<?>> attributes()
      この構造の属性を返します。
      戻り値:
      この構造の属性
    • findAttribute

      default <T extends Attribute<T>> Optional<T> findAttribute(AttributeMapper<T> attr)
      名前で属性を検索します。 これは、1つの構造で「最大1つのインスタンスを許可」する属性を検索するのに適しています。 1つの構造で複数のインスタンスを許可する属性を検索する場合、最初に一致するインスタンスが返されます。
      APIのノート:
      これにより、簡単に属性を見つけ、別のClassFileBuilder (Consumer)に送信できます:
      MethodModel method = ...
      MethodBuilder mb = ...
      method.findAttribute(Attributes.code()).ifPresent(mb);
      
      型パラメータ:
      T - 属性の型
      パラメータ:
      attr - 属性マッパー
      戻り値:
      属性、または属性が存在しない場合はOptional.empty()
    • findAttributes

      default <T extends Attribute<T>> List<T> findAttributes(AttributeMapper<T> attr)
      名前で属性を検索します。 これは、1つの構造で「複数のインスタンスを許可」する属性を検索するのに適しています。
      型パラメータ:
      T - 属性の型
      パラメータ:
      attr - 属性マッパー
      戻り値:
      属性、または属性が存在しない場合は空のList