Класс 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) |
Создаёт обработчик метода с аргументами заданного типа, но с возвращаемым значением 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, если первый аргумент относится к указанному классу (точно к нему, а не к подклассу). Остальные аргументы будут проигнорированы.
- Параметры:
-
clazz- класс первого аргумента, для проверки -
type- тип метода - Возвращает:
- обработчик метода, проверяющий, относится ли его первый аргумент к указанному классу.
isInstance
public static MethodHandle isInstance(Class<?> clazz,
MethodType type)
Создаёт обработчик метода с аргументами заданного типа, но с возвращаемым значением boolean. При вызове он возвращает true, если первый аргумент является экземпляром указанного класса или его подкласса. Остальные аргументы будут проигнорированы.
- Параметры:
-
clazz- класс первого аргумента, для проверки -
type- тип метода - Возвращает:
- обработчик метода, проверяющий, является ли его первый аргумент экземпляром указанного класса или его подкласса.
isInstance
public static MethodHandle isInstance(Class<?> clazz,
int pos,
MethodType type)
Создаёт обработчик метода с аргументами заданного типа, но с возвращаемым значением boolean. При вызове он возвращает true, если n-й аргумент является экземпляром указанного класса или его подкласса. Остальные аргументы будут проигнорированы.
- Параметры:
-
clazz- класс n-го аргумента, для проверки -
pos- позиция в списке аргументов для проверки -
type- тип метода - Возвращает:
- обработчик метода, проверяющий, является ли его n-й аргумент экземпляром указанного класса или его подкласса.
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, 2020, 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/11/docs/api/jdk.dynalink/jdk/dynalink/linker/support/Guards.html