java.lang.Object
java.lang.runtime.ObjectMethods
public class ObjectMethods extends Object
Object.equals(Object)、Object.hashCode()、Object.toString()などのコア・メソッドの状態駆動型実装のブートストラップ・メソッド。 これらのメソッドは、たとえば、レコード・クラスのObjectメソッドの本体を実装するために、Javaコンパイラ実装で使用できます。 - 導入されたバージョン:
- 16
- 
メソッドのサマリー修飾子と型メソッド説明static Objectbootstrap(MethodHandles.Lookup lookup, String methodName, TypeDescriptor type, Class<?> recordClass, String names, MethodHandle... getters) invokedynamicコール・サイトまたは動的な定数プール・エントリのコンポーネント名およびアクセッサ・メソッドの説明に基づいて、Object.equals(Object)、Object.hashCode()およびObject.toString()メソッドを生成するブートストラップ・メソッド。
- 
メソッドの詳細- 
bootstrappublic 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"の場合、このパラメータは無視されます
- getters- メソッド・ハンドル:コンポーネントのアクセッサ・メソッド
- 戻り値:
- iノードによって呼び出された場合はコール・サイト。一度に呼び出された場合はメソッド・ハンドル
- 例外:
- IllegalArgumentException- ブートストラップ引数が無効であるか、一貫性がないか
- NullPointerException- 引数が- nullの場合、または- getters配列の要素が- nullの場合
- Throwable- コール・サイトの構成中に例外がスローされた場合
 
 
-