java.lang.Object
java.lang.runtime.ObjectMethods
public class ObjectMethods extends Object
           This class is associated with records, a preview
           feature of the Java language. Preview features
           may be removed in a future release, or upgraded to permanent
           features of the Java language.
Bootstrap methods for state-driven implementations of core methods, including
Object.equals(Object), Object.hashCode(), and
 Object.toString().  These methods may be used, for example, by
 Java™ compiler implementations to implement the bodies of Object
 methods for record classes.- Since:
- 14
- 
Method SummaryModifier and Type Method Description static Objectbootstrap(MethodHandles.Lookup lookup, String methodName, TypeDescriptor type, Class<?> recordClass, String names, MethodHandle... getters)Bootstrap method to generate theObject.equals(Object),Object.hashCode(), andObject.toString()methods, based on a description of the component names and accessor methods, for eitherinvokedynamiccall sites or dynamic constant pool entries.
- 
Method Details- 
bootstrappublic static Object bootstrap(MethodHandles.Lookup lookup, String methodName, TypeDescriptor type, Class<?> recordClass, String names, MethodHandle... getters) throws ThrowableBootstrap method to generate theObject.equals(Object),Object.hashCode(), andObject.toString()methods, based on a description of the component names and accessor methods, for eitherinvokedynamiccall sites or dynamic constant pool entries. For more detail on the semantics of the generated methods see the specification ofRecord.equals(Object),Record.hashCode()andRecord.toString().- Parameters:
- lookup- Every bootstrap method is expected to have a- lookupwhich usually represents a lookup context with the accessibility privileges of the caller. This is because- invokedynamiccall sites always provide a- lookupto the corresponding bootstrap method, but this method just ignores the- lookupparameter
- methodName- the name of the method to generate, which must be one of- "equals",- "hashCode", or- "toString"
- type- a- MethodTypecorresponding the descriptor type for the method, which must correspond to the descriptor for the corresponding- Objectmethod, if linking an- invokedynamiccall site, or the constant- MethodHandle.class, if linking a dynamic constant
- recordClass- the record class hosting the record components
- names- the list of component names, joined into a string separated by ";", or the empty string if there are no components. Maybe be null, if the- methodNameis- "equals"or- "hashCode".
- getters- method handles for the accessor methods for the components
- Returns:
- a call site if invoked by indy, or a method handle if invoked by a condy
- Throws:
- IllegalArgumentException- if the bootstrap arguments are invalid or inconsistent
- Throwable- if any exception is thrown during call site construction
 
 
-