Класс ConstantBootstraps
public final class ConstantBootstraps extends Object
Методы начальной загрузки в этом классе выбрасывают NullPointerException для любого аргумента-ссылки, который является null, если только не указано, что аргумент не используется или принимает значение null.
- Начиная с:
- 11
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
static VarHandle |
arrayVarHandle |
Находит VarHandle для типа массива. |
static <E extends Enum<E>> |
enumConstant |
Возвращает константу enum типа, заданного параметром type, с именем, заданным параметром name. |
static Object |
explicitCast |
Выполняет преобразование исходного типа в целевой тип. |
static VarHandle |
fieldVarHandle |
Находит VarHandle для поля экземпляра. |
static Object |
getStaticFinal |
Возвращает значение статического поля final, объявленного в классе, который совпадает с типом поля (или, для полей примитивного типа, объявленного в классе-оболочке). |
static Object |
getStaticFinal |
Возвращает значение статического поля final. |
static Object |
invoke |
Возвращает результат вызова дескриптора метода с указанными аргументами. |
static Object |
nullConstant |
Возвращает ссылку на объект null для ссылочного типа, заданного параметром type. |
static Class |
primitiveClass |
Возвращает зеркало Class для примитивного типа, дескриптор типа которого задан параметром name. |
static VarHandle |
staticFieldVarHandle |
Находит VarHandle для статического поля. |
Методы, объявленные в классе Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait | Модификатор и тип | Метод | Описание |
|---|---|---|
protected Object |
clone() |
Создает и возвращает копию этого объекта. |
boolean |
equals |
Указывает, равен ли какой-либо другой объект этому. |
protected void |
finalize() |
Устарело, будет удалено: этот элемент API планируется удалить в будущей версии. Финализация устарела и планируется к удалению в одном из следующих выпусков. |
final Class |
getClass() |
Возвращает класс времени выполнения этого Object. |
int |
hashCode() |
Возвращает хеш-код этого объекта. |
final void |
notify() |
Пробуждает один поток, ожидающий на мониторе этого объекта. |
final void |
notifyAll() |
Пробуждает все потоки, ожидающие на мониторе этого объекта. |
String |
toString() |
Возвращает строковое представление объекта. |
final void |
wait() |
Заставляет текущий поток ожидать пробуждения, обычно в результате уведомления или прерывания. |
final void |
wait |
Заставляет текущий поток ожидать пробуждения, обычно в результате уведомления или прерывания, либо до истечения заданного промежутка реального времени. |
final void |
wait |
Заставляет текущий поток ожидать пробуждения, обычно в результате уведомления или прерывания, либо до истечения заданного промежутка реального времени. |
Подробное описание методов
nullConstant
public static Object nullConstant(MethodHandles.Lookup lookup, String name, Class<?> type)
null для ссылочного типа, заданного параметром type.- Параметры:
-
lookup— не используется -
name— не используется -
type— ссылочный тип - Возвращает:
- значение
null - Выбрасывает:
-
IllegalArgumentException— еслиtypeне является ссылочным типом
primitiveClass
public static Class<?> primitiveClass(MethodHandles.Lookup lookup, String name, Class<?> type)
Class для примитивного типа, дескриптор типа которого задан параметром name.- Параметры:
-
lookup— не используется -
name— дескриптор (JVMS §4.3) требуемого примитивного типа -
type— требуемый тип результата (должен бытьClass.class) - Возвращает:
- зеркало
Class - Выбрасывает:
-
IllegalArgumentException— если имя не является дескриптором примитивного типа или тип не являетсяClass.class
enumConstant
public static <E extends Enum<E>> E enumConstant(MethodHandles.Lookup lookup, String name, Class<E> type)
enum типа, заданного параметром type, с именем, заданным параметром name.- Параметры типа:
E— тип перечисления, для которого требуется вернуть значение-константу- Параметры:
-
lookup— контекст поиска, описывающий класс, выполняющий операцию (обычно помещается в стек JVM) -
name— имя возвращаемой константы, которое должно точно совпадать с одной из констант перечисления указанного типа. -
type— объектClass, описывающий тип перечисления, для которого требуется вернуть константу - Возвращает:
- константу указанного типа перечисления с указанным именем
- Выбрасывает:
-
IllegalAccessError— если объявляющий класс или поле недоступны классу, выполняющему операцию -
IllegalArgumentException— если указанный тип перечисления не содержит константы с указанным именем или указанный объект класса не представляет тип перечисления - См. также:
getStaticFinal
public static Object getStaticFinal(MethodHandles.Lookup lookup, String name, Class<?> type, Class<?> declaringClass)
- Параметры:
-
lookup— контекст поиска, описывающий класс, выполняющий операцию (обычно помещается в стек JVM) -
name— имя поля -
type— тип поля -
declaringClass— класс, в котором объявлено поле - Возвращает:
- значение поля
- Выбрасывает:
-
IllegalAccessError— если объявляющий класс или поле недоступны классу, выполняющему операцию -
NoSuchFieldError— если указанное поле не существует -
IncompatibleClassChangeError— если указанное поле не являетсяfinal
getStaticFinal
public static Object getStaticFinal(MethodHandles.Lookup lookup, String name, Class<?> type)
getStaticFinal(MethodHandles.Lookup, String, Class, Class) для случая, когда класс объявляет именованные константные экземпляры самого себя.- Параметры:
-
lookup— контекст поиска, описывающий класс, выполняющий операцию (обычно помещается в стек JVM) -
name— имя поля -
type— тип поля - Возвращает:
- значение поля
- Выбрасывает:
-
IllegalAccessError— если объявляющий класс или поле недоступны классу, выполняющему операцию -
NoSuchFieldError— если указанное поле не существует -
IncompatibleClassChangeError— если указанное поле не являетсяfinal - См. также:
invoke
public static Object invoke(MethodHandles.Lookup lookup, String name, Class<?> type, MethodHandle handle, Object... args) throws Throwable
Этот метод работает так, как если бы вызываемый дескриптор метода был результатом адаптации заданного дескриптора с помощью MethodHandle.asType(MethodType) для приведения возвращаемого типа к требуемому типу.
- Параметры:
-
lookup— не используется -
name— не используется -
type— требуемый тип возвращаемого значения, который должен быть совместим с типом возвращаемого значения дескриптора метода -
handle— вызываемый дескриптор метода -
args— аргументы, передаваемые дескриптору метода, как при вызовеMethodHandle.invokeWithArguments(Object...). Каждый аргумент может бытьnull. - Возвращает:
- результат вызова дескриптора метода
- Выбрасывает:
-
WrongMethodTypeException— если тип метода дескриптора нельзя адаптировать для приема заданного числа аргументов или если возвращаемый тип дескриптора нельзя привести к требуемому типу -
ClassCastException— если аргумент или результат вызова дескриптора нельзя преобразовать приведением ссылочного типа -
Throwable— любое исключение, выброшенное при вызове дескриптора метода
fieldVarHandle
public static VarHandle fieldVarHandle(MethodHandles.Lookup lookup, String name, Class<VarHandle> type, Class<?> declaringClass, Class<?> fieldType)
VarHandle для поля экземпляра.- Параметры:
-
lookup— контекст поиска, описывающий класс, выполняющий операцию (обычно помещается в стек JVM) -
name— имя поля -
type— требуемый тип результата (должен бытьClass<VarHandle>) -
declaringClass— класс, в котором объявлено поле -
fieldType— тип поля - Возвращает:
VarHandle- Выбрасывает:
-
IllegalAccessError— если объявляющий класс или поле недоступны классу, выполняющему операцию -
NoSuchFieldError— если указанное поле не существует -
IllegalArgumentException— если тип не являетсяVarHandle
staticFieldVarHandle
public static VarHandle staticFieldVarHandle(MethodHandles.Lookup lookup, String name, Class<VarHandle> type, Class<?> declaringClass, Class<?> fieldType)
VarHandle для статического поля.- Параметры:
-
lookup— контекст поиска, описывающий класс, выполняющий операцию (обычно помещается в стек JVM) -
name— имя поля -
type— требуемый тип результата (должен бытьClass<VarHandle>) -
declaringClass— класс, в котором объявлено поле -
fieldType— тип поля - Возвращает:
VarHandle- Выбрасывает:
-
IllegalAccessError— если объявляющий класс или поле недоступны классу, выполняющему операцию -
NoSuchFieldError— если указанное поле не существует -
IllegalArgumentException— если тип не являетсяVarHandle
arrayVarHandle
public static VarHandle arrayVarHandle(MethodHandles.Lookup lookup, String name, Class<VarHandle> type, Class<?> arrayClass)
VarHandle для типа массива.- Параметры:
-
lookup— контекст поиска, описывающий класс, выполняющий операцию (обычно помещается в стек JVM) -
name— не используется -
type— требуемый тип результата (должен бытьClass<VarHandle>) -
arrayClass— тип массива - Возвращает:
VarHandle- Выбрасывает:
-
IllegalAccessError— если тип компонента массива недоступен классу, выполняющему операцию -
IllegalArgumentException— если тип не являетсяVarHandle
explicitCast
public static Object explicitCast(MethodHandles.Lookup lookup, String name, Class<?> dstType, Object value) throws ClassCastException
Для целевого типа dstType и входного значения value произойдет одно из следующего:
- Если
dstTypeявляетсяvoid.class, выбрасываетсяClassCastException. - Если
dstTypeявляетсяObject.class,valueвозвращается без изменений.
В противном случае к value применяется одно из следующих преобразований:
- Если
dstTypeявляется ссылочным типом, кvalueприменяется приведение ссылочного типа, как при вызовеdstType.cast(value). - В противном случае
dstTypeявляется примитивным типом:- Если
valueравно null, возвращается значение по умолчанию (JVMS §2.3) дляdstType. - Если тип времени выполнения
valueявляется типом-оболочкой примитива (например,Integer), выполняется распаковка Java (JLS §5.1.8).- Если тип времени выполнения —
Boolean, результат распаковки преобразуется вint, гдеtrueстановится1, аfalseстановится0.
- Если
dstTypeне являетсяboolean, приведение выполняется непосредственно кdstType. - Если
dstTypeявляетсяboolean, приведение выполняется кint, а результирующее значениеbooleanопределяется проверкой того, равен ли младший бит приведенногоintединице.
- Если тип времени выполнения —
- В противном случае выбрасывается
ClassCastException.
- Если
Результат совпадает с результатом выполнения следующего кода:
MethodHandle id = MethodHandles.identity(dstType); MethodType mt = MethodType.methodType(dstType, Object.class); MethodHandle conv = MethodHandles.explicitCastArguments(id, mt); return conv.invoke(value);
- Параметры:
-
lookup— не используется -
name— не используется -
dstType— целевой тип преобразования -
value— преобразуемое значение, может быть null - Возвращает:
- преобразованное значение
- Выбрасывает:
-
ClassCastException— еслиdstTypeявляетсяvoid; еслиdstTypeявляется ссылочным типом и приведение ссылочного типа завершается неудачей; или еслиdstTypeявляется примитивным типом, аvalue— экземпляр ссылочного типа, не являющегося классом-оболочкой - Начиная с:
- 15
© 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.