Spec-Zone.ru › OpenJDK 21

Класс Guards

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

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

Модификатор и тип Метод Описание
static MethodHandle asType(MethodHandle test, MethodType type)
Принимает обработчик метода, предназначенный для использования в качестве защитного фильтра, и адаптирует его к запрошенному типу, но возвращает булево значение.
static MethodHandle asType(LinkerServices linkerServices, MethodHandle test, MethodType type)
Принимает обработчик метода, предназначенный для использования в качестве защитного фильтра, и адаптирует его к запрошенному типу, но возвращает булево значение.
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)
Создаёт обработчик метода с аргументами заданного типа, но с булевым значением возврата.
static MethodHandle isInstance(Class<?> clazz, MethodType type)
Создаёт обработчик метода с аргументами заданного типа, но с булевым значением возврата.
static MethodHandle isNotNull()
Возвращает защитный фильтр, проверяющий, что первый аргумент не равен null.
static MethodHandle isNull()
Возвращает защитный фильтр, проверяющий, что первый аргумент равен null.
static MethodHandle isOfClass(Class<?> clazz, MethodType type)
Создаёт обработчик метода-защитного фильтра с аргументами заданного типа, но с булевым значением возврата.

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

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

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

isOfClass

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

isInstance

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

isInstance

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

isArray

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

asType

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

asType

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

getClassGuard

public static MethodHandle getClassGuard(Class<?> clazz)
Создаёт метод-защитный фильтр, который проверяет единственный аргумент на соответствие точно заданному классу.
Параметры:
clazz - класс для проверки.
Возвращает:
требуемый метод-защитный фильтр.

getInstanceOfGuard

public static MethodHandle getInstanceOfGuard(Class<?> clazz)
Создаёт метод-защитный фильтр, который проверяет, является ли единственный аргумент экземпляром определённого класса.
Параметры:
clazz - класс для проверки.
Возвращает:
требуемый метод-защитный фильтр.

getIdentityGuard

public static MethodHandle getIdentityGuard(Object obj)
Создаёт метод-защитный фильтр, который проверяет, ссылается ли единственный аргумент на другой объект.
Параметры:
obj - объект, используемый для проверки ссылочной идентичности
Возвращает:
требуемый метод-защитный фильтр.

isNull

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

isNotNull

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

© 1993, 2023, 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/21/docs/api/jdk.dynalink/jdk/dynalink/linker/support/Guards.html

Spec-Zone.ru

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