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

クラスObjectMethods

java.lang.Object
java.lang.runtime.ObjectMethods

public class ObjectMethods extends Object
Object.equals(Object)Object.hashCode()Object.toString()などのコア・メソッドの状態駆動型実装のブートストラップ・メソッド。 これらのメソッドは、たとえば、レコード・クラスのObjectメソッドの本体を実装するために、Javaコンパイラ実装で使用できます。
導入されたバージョン:
16
  • メソッドの詳細

    • bootstrap

      public static Object bootstrap(MethodHandles.Lookup lookup, String methodName, TypeDescriptor type, Class<?> recordClass, String names, MethodHandle... getters) throws Throwable
      invokedynamicコール・サイトまたは動的な定数プール・エントリのコンポーネント名およびアクセッサ・メソッドの説明に基づいて、Object.equals(Object)Object.hashCode()およびObject.toString()メソッドを生成するブートストラップ・メソッド。 生成されるメソッドのセマンティクスの詳細は、Record.equals(Object)Record.hashCode()およびRecord.toString()の仕様を参照してください。
      パラメータ:
      lookup - すべてのブートストラップ・メソッドは、通常はコール元のアクセシビリティ権限で検索コンテキストを表すlookupを持つ必要があります。 これは、invokedynamicコール・サイトでは常に対応するブートストラップ・メソッドにlookupが提供されるが、このメソッドではlookupパラメータが無視されるためです。
      methodName - 生成するメソッドの名前("equals""hashCode"または"toString"のいずれか)
      type - メソッドの記述子タイプに対応するMethodType(invokedynamicコール・サイトをリンクする場合、対応するObjectメソッドの記述子に対応する必要があります)または動的定数をリンクする場合は、定数MethodHandle.class
      recordClass - レコード・コンポーネントをホストしているレコード・クラス
      names - コンポーネント名のリスト。";"で区切られた文字列に結合されています。コンポーネントがない場合は空の文字列に結合されます。 methodName"equals"または"hashCode"の場合、nullであると考えられます。
      getters - メソッド・ハンドル:コンポーネントのアクセッサ・メソッド
      戻り値:
      iノードによって呼び出された場合はコール・サイト。一度に呼び出された場合はメソッド・ハンドル
      例外:
      IllegalArgumentException - ブートストラップ引数が無効であるか、一貫性がないか
      Throwable - コール・サイトの構成中に例外がスローされた場合