Класс ObjectMethods
java.lang.Object
java.lang.runtime.ObjectMethods
public final class ObjectMethods extends Object
Bootstrap-методы для реализаций основных методов, управляемых состоянием, включая
Object.equals(Object), Object.hashCode() и Object.toString(). Эти методы могут использоваться, например, реализациями компилятора Java для создания тел методов Object для классов-записей.- Начиная с:
- 16
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
static Object |
bootstrap |
Bootstrap-метод для генерации методов Object.equals(Object), Object.hashCode() и Object.toString() на основе описания имён компонентов и методов доступа — для точек вызова invokedynamic или записей динамического пула констант. |
Подробное описание методов
bootstrap
public static Object bootstrap(MethodHandles.Lookup lookup, String methodName, TypeDescriptor type, Class<?> recordClass, String names, MethodHandle... getters) throws Throwable
Bootstrap-метод для генерации методов
Object.equals(Object), Object.hashCode() и Object.toString() на основе описания имён компонентов и методов доступа — для точек вызова invokedynamic или записей динамического пула констант. Подробнее о семантике сгенерированных методов см. в спецификации Record.equals(Object), Record.hashCode() и Record.toString().- Параметры:
-
lookup— ожидается, что каждый bootstrap-метод будет иметьlookup, который обычно представляет контекст поиска с привилегиями доступа вызывающего кода. Это связано с тем, что точки вызоваinvokedynamicвсегда передаютlookupсоответствующему bootstrap-методу, однако этот метод просто игнорирует параметрlookup -
methodName— имя генерируемого метода; оно должно быть одним из следующих:"equals","hashCode"или"toString" -
type—MethodType, соответствующий типу дескриптора метода; он должен соответствовать дескриптору соответствующего методаObject, если выполняется связывание точки вызоваinvokedynamic, либо константеMethodHandle.class, если выполняется связывание динамической константы -
recordClass— класс-запись, содержащий компоненты записи -
names— список имён компонентов, объединённых в строку с разделителем ";", либо пустая строка, если компонентов нет. Этот параметр игнорируется, если параметрmethodNameимеет значение"equals"или"hashCode" -
getters— дескрипторы методов доступа к компонентам - Возвращает:
- точку вызова, если вызван через indy, или дескриптор метода, если вызван через condy
- Выбрасывает:
-
IllegalArgumentException— если аргументы bootstrap-метода недопустимы или противоречат друг другу -
NullPointerException— если какой-либо аргумент равенnullили если какой-либо элемент массиваgettersравенnull -
Throwable— если при создании точки вызова выбрасывается исключение
© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/lang/runtime/ObjectMethods.html