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

クラスDynamicConstantDesc<T>

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

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

DynamicConstantDescの具象サブタイプは不変である必要があり、その動作はオブジェクト・アイデンティティに依存しません。

導入されたバージョン:
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
    • resolveConstantDesc

      public T resolveConstantDesc(MethodHandles.Lookup lookup) throws ReflectiveOperationException
      インタフェースからコピーされた説明:ConstantDesc
      JVMS 5.4.3の解決動作およびJVMS 5.4.4のアクセス制御動作を反映して、この記述子を解決します。 解決およびアクセス制御コンテキストは、MethodHandles.Lookupパラメータによって提供されます。 結果の値のキャッシュは実行されません。
      定義:
      インタフェースConstantDesc内のresolveConstantDesc
      パラメータ:
      lookup - 名前解決およびアクセス制御コンテキストを提供するためのMethodHandles.Lookup
      戻り値:
      解決済定数値
      例外:
      ReflectiveOperationException - 解決の過程でクラス、メソッドまたはフィールドを反映的に解決できなかった場合
    • equals

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

      public final int hashCode()
      次のクラスからコピーされた説明: Object
      オブジェクトのハッシュ・コード値を返します。 このメソッドは、HashMapによって提供されるハッシュ表などの、ハッシュ表の利点のためにサポートされています。

      hashCodeの一般的な規則は次のとおりです。

      • Javaアプリケーションの実行中に同じオブジェクトに対して複数回呼び出された場合は常に、このオブジェクトに対するequalsの比較で使用される情報が変更されていなければ、hashCodeメソッドは常に同じ整数を返す必要があります。 ただし、この整数は同じアプリケーションの実行ごとに同じである必要はありません。
      • 2つのオブジェクトがequalsメソッドに従って等しい場合、2つのオブジェクトのそれぞれで hashCodeメソッドを呼び出すと、同じ整数結果が生成される必要があります。
      • 2つのオブジェクトがequalsメソッドに従って等しくない場合、2つのオブジェクトのそれぞれでhashCodeメソッドを呼び出すと、個別の整数結果が生成される必要はありません。 ただし、プログラマは、等しくないオブジェクトに対して異なる整数の結果を生成すると、ハッシュ表のパフォーマンスが向上する可能性があることに注意するようにしてください。

      オーバーライド:
      hashCode 、クラス:  Object
      戻り値:
      このオブジェクトのハッシュ・コード値。
      関連項目:
    • toString

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