インタフェースEnclosingMethodAttribute

すべてのスーパー・インタフェース:
Attribute<EnclosingMethodAttribute>, ClassElement, ClassFileElement

public sealed interface EnclosingMethodAttribute extends Attribute<EnclosingMethodAttribute>, ClassElement
EnclosingMethod属性(JVMS 4.7.7)をモデル化します。これは、このクラスがローカル・クラスまたは匿名クラスであることを示し、このクラスが1つのメソッドまたはコンストラクタで囲まれている場合は、このクラスの包含メソッドまたはコンストラクタを示します。

この属性はクラスにのみ表示され、クラス内の「複数のインスタンス」は許可されません。 「定数プール」へのデータ依存性があります。

属性は、Java SEプラットフォーム・バージョン5.0(メジャー・バージョン49)で導入されました。

Java Virtual Machine仕様を参照してください:
「4.7.7 EnclosingMethod属性」
導入されたバージョン:
24
関連項目:
  • メソッドの詳細

    • enclosingClass

      ClassEntry enclosingClass()
      現在のクラスの宣言を囲むクラスを返します。 enclosingMethod()が存在する場合、これはその包含メソッドまたはコンストラクタの宣言クラスです。
      戻り値:
      現在のクラスの宣言を囲むクラス
      関連項目:
    • enclosingMethod

      Optional<NameAndTypeEntry> enclosingMethod()
      クラスがただちに1つのメソッドまたはコンストラクタで囲まれている場合、包含メソッドの名前および型を返します。 匿名クラスまたはローカル・クラスがフィールド・イニシャライザ(JLS 8.3.2)、インスタンス・イニシャライザ(JLS 8.6)または静的イニシャライザ(JLS 8.7)にある場合、これは空である可能性があります。 その結果、クラス初期化メソッド"<clinit>"は記述されません。
      戻り値:
      クラスが1つのメソッドまたはコンストラクタによってすぐに囲まれている場合、包含メソッドの名前および型
      関連項目:
    • enclosingMethodName

      default Optional<Utf8Entry> enclosingMethodName()
      クラスがただちに1つのメソッドまたはコンストラクタで囲まれている場合、包含メソッドの名前を返します。
      戻り値:
      クラスが1つのメソッドまたはコンストラクタによってすぐに囲まれている場合、包含メソッドの名前
      関連項目:
    • enclosingMethodType

      default Optional<Utf8Entry> enclosingMethodType()
      クラスがただちに1つのメソッドまたはコンストラクタで囲まれている場合、包含メソッドの名前を返します。
      戻り値:
      クラスが1つのメソッドまたはコンストラクタによってすぐに囲まれている場合、包含メソッドの名前
      関連項目:
    • enclosingMethodTypeSymbol

      default Optional<MethodTypeDesc> enclosingMethodTypeSymbol()
      クラスがただちに1つのメソッドまたはコンストラクタで囲まれている場合、包含メソッドの名前を返します。
      戻り値:
      クラスが1つのメソッドまたはコンストラクタによってすぐに囲まれている場合、包含メソッドの名前
      関連項目:
    • of

      EnclosingMethod属性を返します。
      パラメータ:
      className - クラス名
      method - 囲んでいるメソッドの名前と型、またはクラスが1つのメソッドまたはコンストラクタによってすぐに囲まれていない場合はOptional.empty()
      戻り値:
      EnclosingMethod属性
    • of

      static EnclosingMethodAttribute of(ClassDesc className, Optional<String> methodName, Optional<MethodTypeDesc> methodType)
      EnclosingMethod属性を返します。
      パラメータ:
      className - クラス名
      methodName - クラスが1つのメソッドまたはコンストラクタによってすぐに囲まれていない場合は、包含メソッドの名前またはOptional.empty()
      methodType - 包含メソッドの型、またはクラスが1つのメソッドまたはコンストラクタによってすぐに囲まれていない場合はOptional.empty()
      戻り値:
      EnclosingMethod属性
      スロー:
      IllegalArgumentException - classNameがプリミティブ型を表す場合