Класс Guards
java.lang.Object
jdk.dynalink.linker.support.Guards
public final class Guards extends Object
Утилитарные методы для создания типичных охранных механизмов для
MethodHandles.guardWithTest(MethodHandle, MethodHandle, MethodHandle) и для изменения их типов методов.- Since:
- 9
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
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 |
Создаёт обработчик метода с аргументами указанного типа, но с возвращаемым значением boolean. |
static MethodHandle |
isInstance |
Создаёт обработчик метода с аргументами указанного типа, но с возвращаемым значением boolean. |
static MethodHandle |
isNotNull() |
Возвращает охранник, проверяющий, что первый аргумент не равен null. |
static MethodHandle |
isNull() |
Возвращает охранник, проверяющий, что первый аргумент равен null. |
static MethodHandle |
isOfClass |
Создаёт обработчик метода-охранника с аргументами указанного типа, но с возвращаемым значением boolean. |
Подробное описание методов
isOfClass
public static MethodHandle isOfClass(Class<?> clazz, MethodType type)
Создаёт обработчик метода-охранника с аргументами указанного типа, но с возвращаемым значением boolean. При вызове возвращает true, если первый аргумент принадлежит указанному классу (точно ему, а не подклассу). Остальные аргументы будут игнорироваться.
- Parameters:
-
clazz- класс первого аргумента, для которого нужно проверить соответствие -
type- тип метода - Returns:
- обработчик метода, проверяющий, принадлежит ли его первый аргумент указанному классу.
isInstance
public static MethodHandle isInstance(Class<?> clazz, MethodType type)
Создаёт обработчик метода с аргументами указанного типа, но с возвращаемым значением boolean. При вызове возвращает true, если первый аргумент является экземпляром указанного класса или его подкласса. Остальные аргументы будут игнорироваться.
- Parameters:
-
clazz- класс первого аргумента, для которого нужно проверить соответствие -
type- тип метода - Returns:
- обработчик метода, проверяющий, является ли его первый аргумент экземпляром указанного класса или его подкласса.
isInstance
public static MethodHandle isInstance(Class<?> clazz, int pos, MethodType type)
Создаёт обработчик метода с аргументами указанного типа, но с возвращаемым значением boolean. При вызове возвращает true, если n-ый аргумент является экземпляром указанного класса или его подкласса. Остальные аргументы будут игнорироваться.
- Parameters:
-
clazz- класс n-го аргумента, для которого нужно проверить соответствие -
pos- позиция в списке аргументов для проверки -
type- тип метода - Returns:
- обработчик метода, проверяющий, является ли n-ый аргумент экземпляром указанного класса или его подкласса.
isArray
public static MethodHandle isArray(int pos, MethodType type)
Создаёт обработчик метода, который возвращает true, если аргумент в указанной позиции является массивом Java.
- Parameters:
-
pos- позиция в списке аргументов -
type- тип метода обработчика - Returns:
- обработчик метода, который возвращает true, если аргумент в указанной позиции является массивом Java; остальные аргументы игнорируются.
asType
public static MethodHandle asType(MethodHandle test, MethodType type)
Принимает обработчик метода, предназначенный для использования в качестве охранника, и адаптирует его к запрошенному типу, возвращая boolean. Применяет
MethodHandle.asType(MethodType) для преобразования типов и использует MethodHandles.dropArguments(MethodHandle, int, Class...) для соответствия требуемой арности типа.- Parameters:
-
test- обработчик метода для проверки -
type- тип для адаптации обработчика метода - Returns:
- адаптированный обработчик метода
asType
public static MethodHandle asType(LinkerServices linkerServices, MethodHandle test, MethodType type)
Принимает обработчик метода, предназначенный для использования в качестве охранника, и адаптирует его к запрошенному типу, возвращая boolean. Применяет
LinkerServices.asType(MethodHandle, MethodType) для преобразования типов и использует MethodHandles.dropArguments(MethodHandle, int, Class...) для соответствия требуемой арности типа.- Parameters:
-
linkerServices- используемые службы линковки для преобразований типов -
test- обработчик метода для проверки -
type- тип для адаптации обработчика метода - Returns:
- адаптированный обработчик метода
getClassGuard
public static MethodHandle getClassGuard(Class<?> clazz)
Создаёт метод-охранник, который проверяет свой единственный аргумент на принадлежность к конкретному классу.
- Parameters:
-
clazz- проверяемый класс. - Returns:
- нужный метод-охранник.
getInstanceOfGuard
public static MethodHandle getInstanceOfGuard(Class<?> clazz)
Создаёт метод-охранник, который проверяет свой единственный аргумент на принадлежность к конкретному классу (или его подклассам).
- Parameters:
-
clazz- проверяемый класс. - Returns:
- нужный метод-охранник.
getIdentityGuard
public static MethodHandle getIdentityGuard(Object obj)
Создаёт метод-охранник, который проверяет, ссылается ли его единственный аргумент на другой объект.
- Parameters:
-
obj- объект, используемый для проверки referential identity - Returns:
- нужный метод-охранник.
isNull
public static MethodHandle isNull()
Возвращает охранник, проверяющий, что первый аргумент равен null.
- Returns:
- охранник, проверяющий, что первый аргумент равен null.
isNotNull
public static MethodHandle isNotNull()
Возвращает охранник, проверяющий, что первый аргумент не равен null.
- Returns:
- охранник, проверяющий, что первый аргумент не равен null.
© 1993, 2025, 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://download.java.net/java/early_access/jdk24/docs/api/jdk.dynalink/jdk/dynalink/linker/support/Guards.html