Класс Guards
java.lang.Object
jdk.dynalink.linker.support.Guards
public final class Guards extends Object
Утилитарные методы для создания типовых защитных фильтров для
MethodHandles.guardWithTest(MethodHandle, MethodHandle, MethodHandle) и для изменения типов их методов.Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
static MethodHandle |
asType |
Принимает обработчик метода, предназначенный для использования в качестве защитного фильтра, и адаптирует его к запрошенному типу, но возвращает булево значение. |
static MethodHandle |
asType |
Принимает обработчик метода, предназначенный для использования в качестве защитного фильтра, и адаптирует его к запрошенному типу, но возвращает булево значение. |
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)
Принимает обработчик метода, предназначенный для использования в качестве защитного фильтра, и адаптирует его к запрошенному типу, но возвращает булево значение. Применяет
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