モジュール java.base
パッケージ java.lang.constant

クラスDynamicConstantDesc<T>

java.lang.Object
java.lang.constant.DynamicConstantDesc<T>
型パラメータ:
T - 動的定数の型
すべての実装されたインタフェース:
ConstantDesc
直系の既知のサブクラス:
Enum.EnumDesc, VarHandle.VarHandleDesc

public abstract class DynamicConstantDesc<T>
extends Object
implements ConstantDesc
動的定数の場合は「名目記述子」 (Constant_Dynamic_infoで固定プールに記述されているもの。)

DynamicConstantDescの具象サブタイプは、value-basedである必要があります。

導入されたバージョン:
12
  • コンストラクタの詳細

    • DynamicConstantDesc

      protected DynamicConstantDesc​(DirectMethodHandleDesc bootstrapMethod, String constantName, ClassDesc constantType, ConstantDesc... bootstrapArgs)
      動的定数の名目記述子を作成します。
      パラメータ:
      bootstrapMethod - 定数のブートストラップ・メソッドを記述するDirectMethodHandleDesc
      constantName - この定数に対してLDCNameAndTypeオペランドに表示される非修飾名
      constantType - この定数についてLDCNameAndTypeオペランドに表示される型を示すClassDesc
      bootstrapArgs - ConstantDescは、BootstrapMethods属性に出現するブートストラップに対する静的引数を記述
      例外:
      NullPointerException - いずれかの引数がnullの場合
      IllegalArgumentException - nameの形式が正しくない場合
      Java Virtual Machine仕様を参照してください:
      4.2.2 未修飾名
  • メソッドの詳細

    • ofCanonical

      public static <T> ConstantDesc ofCanonical​(DirectMethodHandleDesc bootstrapMethod, String constantName, ClassDesc constantType, ConstantDesc[] bootstrapArgs)
      定数ブートストラップが既知の単一記述子で、より具体的な記述子タイプ(例: ClassDesc)が使用可能な場合は、動的定数の名目記述子を返し、より具体的な型に変換します。

      Class (プリミティブ・タイプを記述するインスタンス)、EnumおよびVarHandleを含む既知のブートストラップを使用して、Constable.describeConstable()メソッドがDynamicConstantDescを生成するクラス。

      定数プールを処理し、その呼び出し元にConstantDescとしてエントリを公開するバイトコード・コードのAPIは、一般に、このメソッドをofNamed(DirectMethodHandleDesc, String, ClassDesc, ConstantDesc...)に優先順位付けする必要があります。これは、呼び出し元に提供できる特定のタイプである可能性があるためです。

      型パラメータ:
      T - 動的定数の型
      パラメータ:
      bootstrapMethod - 定数のブートストラップ・メソッドを記述するDirectMethodHandleDesc
      constantName - この定数に対してLDCNameAndTypeオペランドに表示される非修飾名
      constantType - この定数についてLDCNameAndTypeオペランドに表示される型を示すClassDesc
      bootstrapArgs - ConstantDescは、BootstrapMethods属性に出現するブートストラップに対する静的引数を記述
      戻り値:
      名目記述子
      例外:
      NullPointerException - いずれかの引数がnullの場合
      IllegalArgumentException - nameの形式が正しくない場合
      Java Virtual Machine仕様を参照してください:
      4.2.2 未修飾名
    • ofNamed

      public static <T> DynamicConstantDesc<T> ofNamed​(DirectMethodHandleDesc bootstrapMethod, String constantName, ClassDesc constantType, ConstantDesc... bootstrapArgs)
      動的定数の名目記述子を返します。
      型パラメータ:
      T - 動的定数の型
      パラメータ:
      bootstrapMethod - 定数のブートストラップ・メソッドを記述するDirectMethodHandleDesc
      constantName - この定数に対してLDCNameAndTypeオペランドに表示される非修飾名
      constantType - この定数についてLDCNameAndTypeオペランドに表示される型を示すClassDesc
      bootstrapArgs - ConstantDescは、BootstrapMethods属性に出現するブートストラップに対する静的引数を記述
      戻り値:
      名目記述子
      例外:
      NullPointerException - いずれかの引数がnullの場合
      IllegalArgumentException - nameの形式が正しくない場合
      Java Virtual Machine仕様を参照してください:
      4.2.2 未修飾名
    • of

      public static <T> DynamicConstantDesc<T> of​(DirectMethodHandleDesc bootstrapMethod, ConstantDesc... bootstrapArgs)
      名前パラメータがConstantDescs.DEFAULT_NAMEで、typeパラメータが常にブートストラップ・メソッドの戻り型と同じである動的定数の名目記述子を返します。
      型パラメータ:
      T - 動的定数の型
      パラメータ:
      bootstrapMethod - 定数のブートストラップ・メソッドを記述するDirectMethodHandleDesc
      bootstrapArgs - ConstantDescは、BootstrapMethods属性に出現するブートストラップに対する静的引数を記述
      戻り値:
      名目記述子
      例外:
      NullPointerException - いずれかの引数がnullの場合
      Java Virtual Machine仕様を参照してください:
      4.2.2 未修飾名
    • of

      public static <T> DynamicConstantDesc<T> of​(DirectMethodHandleDesc bootstrapMethod)
      ブートストラップが静的引数を持たない動的定数の名目記述子を返します。この値は、nameパラメータがConstantDescs.DEFAULT_NAMEで、typeパラメータは常にブートストラップ・メソッドの戻り型と同じです。
      型パラメータ:
      T - 動的定数の型
      パラメータ:
      bootstrapMethod - 定数のブートストラップ・メソッドを記述するDirectMethodHandleDesc
      戻り値:
      名目記述子
      例外:
      NullPointerException - いずれかの引数がnullの場合
    • constantName

      public String constantName()
      この定数に対してLDCNameAndTypeオペランドに出現する名前を戻します。
      戻り値:
      定数名
    • constantType

      public ClassDesc constantType()
      この定数に対してLDCNameAndTypeオペランドに表示される型を示すClassDescを返します。
      戻り値:
      定数型
    • bootstrapMethod

      public DirectMethodHandleDesc bootstrapMethod()
      この定数のブートストラップ・メソッドを記述するMethodHandleDescを返します。
      戻り値:
      ブートストラップ・メソッド
    • bootstrapArgs

      public ConstantDesc[] bootstrapArgs()
      この定数のブートストラップ引数を返します。
      戻り値:
      ブートストラップ引数
    • bootstrapArgsList

      public List<ConstantDesc> bootstrapArgsList()
      不変Listとして、この定数のブートストラップ引数を返します。
      戻り値:
      ブートストラップ引数のList
    • equals

      public final boolean equals​(Object o)
      等価性のために、指定されたオブジェクトをこの記述子と比較します。 trueを返します(指定したオブジェクトがDynamicConstantDescでもある場合のみ、また、両方の記述子に=ブートストラップ・メソッド、ブートストラップ引数リスト、定数名および定数タイプが存在する場合のみ)。
      オーバーライド:
      equals 、クラス:  Object
      パラメータ:
      o - このDynamicConstantDescと比較するDynamicConstantDesc
      戻り値:
      指定されたDynamicConstantDescがこのDynamicConstantDescと等しい場合はtrue
      関連項目:
      Object.hashCode()HashMap
    • toString

      public String toString()
      ブートストラップ・メソッド、定数名と型、静的ブートストラップ引数など、この定数説明のコンパクトなテキスト型の説明を返します。
      オーバーライド:
      toString 、クラス:  Object
      戻り値:
      この呼出しサイト記述子のコンパクトな説明