Класс Guards
java.lang.Object
jdk.dynalink.linker.support.Guards
public final class Guards extends Object
Утилитарные методы для создания типичных фильтров для
MethodHandles.guardWithTest(MethodHandle, MethodHandle, MethodHandle) и для изменения их типов методов.Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
static MethodHandle |
asType |
Принимает обработчик метода, предназначенный для использования в качестве фильтра, и адаптирует его к запрошенному типу, но возвращает boolean. |
static MethodHandle |
asType |
Принимает обработчик метода, предназначенный для использования в качестве фильтра, и адаптирует его к запрошенному типу, но возвращает boolean. |
static MethodHandle |
getClassGuard |
Создает метод-фильтр, который проверяет единственный аргумент на принадлежность к конкретному классу. |
static MethodHandle |
getIdentityGuard |
Создает метод-фильтр, который проверяет, является ли единственный аргумент ссылочно идентичным другому объекту. |
static MethodHandle |
getInstanceOfGuard |
Создает метод-фильтр, который проверяет, является ли единственный аргумент экземпляром определенного класса. |
static MethodHandle |
isArray |
Создает обработчик метода, который возвращает true, если аргумент в указанной позиции является массивом Java. |
static MethodHandle |
isInstance |
Создает обработчик метода с аргументами указанного типа, но с логическим значением возврата. |
static MethodHandle |
isInstance |
Создает обработчик метода с аргументами указанного типа, но с логическим значением возврата. |
static MethodHandle |
isNotNull() |
Возвращает фильтр, проверяющий, не является ли первый аргумент null. |
static MethodHandle |
isNull() |
Возвращает фильтр, проверяющий, является ли первый аргумент null. |
static MethodHandle |
isOfClass |
Создает обработчик метода-фильтра с аргументами указанного типа, но с логическим значением возврата. |
Подробное описание методов
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