Spec-Zone.ru › OpenJDK 17

Класс 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)
Принимает обработчик метода, предназначенный для использования в качестве фильтра, и адаптирует его к запрошенному типу, но возвращает 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)
Создает обработчик метода с аргументами указанного типа, но с логическим значением возврата.
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)
Принимает обработчик метода, предназначенный для использования в качестве фильтра, и адаптирует его к запрошенному типу, но возвращает boolean. Применяет MethodHandle.asType(MethodType) для преобразования типов и использует MethodHandles.dropArguments(MethodHandle, int, Class...) для соответствия требуемой арности типа.
Параметры:
test - обработчик метода проверки
type - тип для адаптации обработчика метода
Возвращает:
адаптированный обработчик метода

asType

public static MethodHandle asType(LinkerServices linkerServices, MethodHandle test, MethodType type)
Принимает обработчик метода, предназначенный для использования в качестве фильтра, и адаптирует его к запрошенному типу, но возвращает boolean. Применяет 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, 2021, 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/17/docs/api/jdk.dynalink/jdk/dynalink/linker/support/Guards.html

Spec-Zone.ru

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