Spec-Zone.ru › OpenJDK 24

Класс Guards

java.lang.Object
jdk.dynalink.linker.support.Guards
public final class Guards extends Object
Утилитарные методы для создания типичных охранных механизмов для MethodHandles.guardWithTest(MethodHandle, MethodHandle, MethodHandle) и для изменения их типов методов.
Since:
9

Краткое описание методов

Модификатор и тип Метод Описание
static MethodHandle asType(MethodHandle test, MethodType type)
Принимает обработчик метода, предназначенный для использования в качестве охранного механизма, и адаптирует его к запрошенному типу, но возвращает boolean.
static MethodHandle asType(LinkerServices linkerServices, MethodHandle test, MethodType type)
Принимает обработчик метода, предназначенный для использования в качестве охранного механизма, и адаптирует его к запрошенному типу, но возвращает boolean.
static MethodHandle getClassGuard(Class<?> clazz)
Создаёт метод-охранник, который проверяет свой единственный аргумент на принадлежность к конкретному классу.
static MethodHandle getIdentityGuard(Object obj)
Создаёт метод-охранник, который проверяет, ссылается ли его единственный аргумент на другой объект.
static MethodHandle getInstanceOfGuard(Class<?> clazz)
Создаёт метод-охранник, который проверяет, является ли его единственный аргумент экземпляром конкретного класса.
static MethodHandle isArray(int pos, MethodType type)
Создаёт обработчик метода, который возвращает true, если аргумент в указанной позиции является массивом Java.
static MethodHandle isInstance(Class<?> clazz, int pos, MethodType type)
Создаёт обработчик метода с аргументами указанного типа, но с возвращаемым значением boolean.
static MethodHandle isInstance(Class<?> clazz, MethodType type)
Создаёт обработчик метода с аргументами указанного типа, но с возвращаемым значением boolean.
static MethodHandle isNotNull()
Возвращает охранник, проверяющий, что первый аргумент не равен null.
static MethodHandle isNull()
Возвращает охранник, проверяющий, что первый аргумент равен null.
static MethodHandle isOfClass(Class<?> clazz, MethodType type)
Создаёт обработчик метода-охранника с аргументами указанного типа, но с возвращаемым значением boolean.

Методы, объявленные в классе java.lang.Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Подробное описание методов

isOfClass

public static MethodHandle isOfClass(Class<?> clazz, MethodType type)
Создаёт обработчик метода-охранника с аргументами указанного типа, но с возвращаемым значением boolean. При вызове возвращает true, если первый аргумент принадлежит указанному классу (точно ему, а не подклассу). Остальные аргументы будут игнорироваться.
Parameters:
clazz - класс первого аргумента, для которого нужно проверить соответствие
type - тип метода
Returns:
обработчик метода, проверяющий, принадлежит ли его первый аргумент указанному классу.

isInstance

public static MethodHandle isInstance(Class<?> clazz, MethodType type)
Создаёт обработчик метода с аргументами указанного типа, но с возвращаемым значением boolean. При вызове возвращает true, если первый аргумент является экземпляром указанного класса или его подкласса. Остальные аргументы будут игнорироваться.
Parameters:
clazz - класс первого аргумента, для которого нужно проверить соответствие
type - тип метода
Returns:
обработчик метода, проверяющий, является ли его первый аргумент экземпляром указанного класса или его подкласса.

isInstance

public static MethodHandle isInstance(Class<?> clazz, int pos, MethodType type)
Создаёт обработчик метода с аргументами указанного типа, но с возвращаемым значением boolean. При вызове возвращает true, если n-ый аргумент является экземпляром указанного класса или его подкласса. Остальные аргументы будут игнорироваться.
Parameters:
clazz - класс n-го аргумента, для которого нужно проверить соответствие
pos - позиция в списке аргументов для проверки
type - тип метода
Returns:
обработчик метода, проверяющий, является ли n-ый аргумент экземпляром указанного класса или его подкласса.

isArray

public static MethodHandle isArray(int pos, MethodType type)
Создаёт обработчик метода, который возвращает true, если аргумент в указанной позиции является массивом Java.
Parameters:
pos - позиция в списке аргументов
type - тип метода обработчика
Returns:
обработчик метода, который возвращает true, если аргумент в указанной позиции является массивом Java; остальные аргументы игнорируются.

asType

public static MethodHandle asType(MethodHandle test, MethodType type)
Принимает обработчик метода, предназначенный для использования в качестве охранника, и адаптирует его к запрошенному типу, возвращая boolean. Применяет MethodHandle.asType(MethodType) для преобразования типов и использует MethodHandles.dropArguments(MethodHandle, int, Class...) для соответствия требуемой арности типа.
Parameters:
test - обработчик метода для проверки
type - тип для адаптации обработчика метода
Returns:
адаптированный обработчик метода

asType

public static MethodHandle asType(LinkerServices linkerServices, MethodHandle test, MethodType type)
Принимает обработчик метода, предназначенный для использования в качестве охранника, и адаптирует его к запрошенному типу, возвращая boolean. Применяет LinkerServices.asType(MethodHandle, MethodType) для преобразования типов и использует MethodHandles.dropArguments(MethodHandle, int, Class...) для соответствия требуемой арности типа.
Parameters:
linkerServices - используемые службы линковки для преобразований типов
test - обработчик метода для проверки
type - тип для адаптации обработчика метода
Returns:
адаптированный обработчик метода

getClassGuard

public static MethodHandle getClassGuard(Class<?> clazz)
Создаёт метод-охранник, который проверяет свой единственный аргумент на принадлежность к конкретному классу.
Parameters:
clazz - проверяемый класс.
Returns:
нужный метод-охранник.

getInstanceOfGuard

public static MethodHandle getInstanceOfGuard(Class<?> clazz)
Создаёт метод-охранник, который проверяет свой единственный аргумент на принадлежность к конкретному классу (или его подклассам).
Parameters:
clazz - проверяемый класс.
Returns:
нужный метод-охранник.

getIdentityGuard

public static MethodHandle getIdentityGuard(Object obj)
Создаёт метод-охранник, который проверяет, ссылается ли его единственный аргумент на другой объект.
Parameters:
obj - объект, используемый для проверки referential identity
Returns:
нужный метод-охранник.

isNull

public static MethodHandle isNull()
Возвращает охранник, проверяющий, что первый аргумент равен null.
Returns:
охранник, проверяющий, что первый аргумент равен null.

isNotNull

public static MethodHandle isNotNull()
Возвращает охранник, проверяющий, что первый аргумент не равен null.
Returns:
охранник, проверяющий, что первый аргумент не равен null.

© 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://download.java.net/java/early_access/jdk24/docs/api/jdk.dynalink/jdk/dynalink/linker/support/Guards.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API