Spec-Zone.ru › OpenJDK 24

Класс GuardedInvocation

java.lang.Object
jdk.dynalink.linker.GuardedInvocation
public class GuardedInvocation extends Object
Представляет условно допустимый обработчик метода. Обычно возвращается в качестве значения из GuardingDynamicLinker.getGuardedInvocation(LinkRequest, LinkerServices) и GuardingTypeConverterFactory.convertToType(Class, Class, Supplier). Он представляет собой неизменяемую кортеж из обработчика вызова метода, обработчика проверки, определяющего применимость обработчика вызова, нуля или более точек переключения, которые могут использоваться для внешнего аннулирования обработчика вызова, и типа исключения, которое, если будет брошено во время вызова обработчика метода, также аннулирует его. Обработчик вызова пригоден для вызова, если обработчик проверки возвращает true для его аргументов, и пока ни одна из точек переключения не аннулирована, и пока не будет брошено исключение указанного типа. Проверка, точки переключения и тип исключения являются необязательными (защищённый вызов, не имеющий ни одного из них, является безусловно допустимым).
Since:
9

Краткое описание конструкторов

Конструктор Описание
GuardedInvocation(MethodHandle invocation)
Создаёт новый безусловный защищённый вызов.
GuardedInvocation(MethodHandle invocation, MethodHandle guard)
Создаёт новый защищённый вызов с обработчиком проверки.
GuardedInvocation(MethodHandle invocation, MethodHandle guard, SwitchPoint switchPoint)
Создаёт новый защищённый вызов с обработчиком проверки и точкой переключения, которая может быть использована для его аннулирования.
GuardedInvocation(MethodHandle invocation, MethodHandle guard, SwitchPoint[] switchPoints, Class<? extends Throwable> exception)
Создаёт новый защищённый вызов с обработчиком проверки, любым количеством точек переключения, которые могут быть использованы для его аннулирования, и исключением, которое, если будет брошено при вызове, также аннулирует его.
GuardedInvocation(MethodHandle invocation, MethodHandle guard, SwitchPoint switchPoint, Class<? extends Throwable> exception)
Создаёт новый защищённый вызов с обработчиком проверки, точкой переключения, которая может быть использована для его аннулирования, и исключением, которое, если будет брошено при вызове, также аннулирует его.
GuardedInvocation(MethodHandle invocation, SwitchPoint switchPoint)
Создаёт новый защищённый вызов, который может быть аннулирован точкой переключения.

Краткое описание методов

Модификатор и тип Метод Описание
GuardedInvocation addSwitchPoint(SwitchPoint newSwitchPoint)
Создаёт новый защищённый вызов с добавленной точкой переключения.
GuardedInvocation asType(MethodType newType)
Изменяет тип вызова, как если бы MethodHandle.asType(MethodType) был применён к его вызову и его проверке, если она есть (с типом возвращаемого значения, изменённым на boolean, и количеством параметров, потенциально усечённым для проверки).
GuardedInvocation asType(CallSiteDescriptor desc)
Изменяет тип вызова, как если бы MethodHandle.asType(MethodType) был применён к его вызову и его проверке, если она есть (с типом возвращаемого значения, изменённым на boolean для проверки).
GuardedInvocation asType(LinkerServices linkerServices, MethodType newType)
Изменяет тип вызова, как если бы LinkerServices.asType(MethodHandle, MethodType) был применён к его вызову и его проверке, если она есть (с типом возвращаемого значения, изменённым на boolean, и количеством параметров, потенциально усечённым для проверки).
GuardedInvocation asTypeSafeReturn(LinkerServices linkerServices, MethodType newType)
Изменяет тип вызова, как если бы LinkerServices.asTypeLosslessReturn(MethodHandle, MethodType) был применён к его вызову и LinkerServices.asType(MethodHandle, MethodType) был применён к его проверке, если она есть (с типом возвращаемого значения, изменённым на boolean, и количеством параметров, потенциально усечённым для проверки).
MethodHandle compose(MethodHandle fallback)
Компонует вызов, проверку, точки переключения и исключение в составной обработчик метода, который знает, как обработать случай, когда проверка завершается неудачно или вызов аннулируется.
MethodHandle compose(MethodHandle guardFallback, MethodHandle switchpointFallback, MethodHandle catchFallback)
Компонует вызов, проверку, точки переключения и исключение в составной обработчик метода, который знает, как обработать случай, когда проверка завершается неудачно или вызов аннулируется.
GuardedInvocation dropArguments(int pos, Class<?>... valueTypes)
Делает вызов, отбрасывая аргументы как в вызове, так и в проверке (если она существует и имеет как минимум pos параметров) с помощью MethodHandles.dropArguments(MethodHandle, int, Class...).
GuardedInvocation dropArguments(int pos, List<Class<?>> valueTypes)
Делает вызов, отбрасывая аргументы как в вызове, так и в проверке (если она существует и имеет как минимум pos параметров) с помощью MethodHandles.dropArguments(MethodHandle, int, List).
GuardedInvocation filterArguments(int pos, MethodHandle... filters)
Применяет фильтры аргументов к вызову и проверке (если она существует и имеет как минимум pos + 1 параметров) с помощью MethodHandles.filterArguments(MethodHandle, int, MethodHandle...).
Class<? extends Throwable> getException()
Возвращает тип исключения, которое, если будет брошено вызовом, должно аннулировать связь этого защищённого вызова.
MethodHandle getGuard()
Возвращает обработчик проверки метода.
MethodHandle getInvocation()
Возвращает обработчик вызова метода.
SwitchPoint[] getSwitchPoints()
Возвращает точки переключения, которые могут быть использованы для аннулирования связи этого обработчика вызова.
boolean hasBeenInvalidated()
Возвращает true тогда и только тогда, когда у этого защищённого вызова есть хотя бы одна аннулированная точка переключения.
GuardedInvocation replaceMethods(MethodHandle newInvocation, MethodHandle newGuard)
Создаёт новый защищённый вызов с другими методами, сохраняя точку переключения.

Методы, объявленные в классе java.lang.Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Подробное описание конструкторов

GuardedInvocation

public GuardedInvocation(MethodHandle invocation)
Создаёт новое безусловное защищённое вызов. Оно безусловное, так как не имеет недействительных значений.
Параметры:
invocation - обработчик метода, представляющий вызов. Не должен быть null.
Исключения:
NullPointerException - если вызов равен null.

GuardedInvocation

public GuardedInvocation(MethodHandle invocation, MethodHandle guard)
Создаёт новый защищённый вызов с обработчиком метода для проверки.
Параметры:
invocation - обработчик метода, представляющий вызов. Не должен быть null.
guard - обработчик метода, представляющий проверку. Он должен быть совместим с invocation обработчиком в соответствии с MethodHandles.guardWithTest(MethodHandle, MethodHandle, MethodHandle). Некоторые полезные проверки можно найти в классе Guards. Он может быть null для обозначения безусловного вызова.
Исключения:
NullPointerException - если вызов равен null.

GuardedInvocation

public GuardedInvocation(MethodHandle invocation, SwitchPoint switchPoint)
Создаёт новый защищённый вызов, который может быть аннулирован точкой переключения.
Параметры:
invocation - обработчик метода, представляющий вызов. Не должен быть null.
switchPoint - необязательная точка переключения, которая может быть использована для аннулирования этого связывания. Может быть null. Если null, это безусловный вызов.
Исключения:
NullPointerException - если вызов равен null.

GuardedInvocation

public GuardedInvocation(MethodHandle invocation, MethodHandle guard, SwitchPoint switchPoint)
Создаёт новый защищённый вызов с обработчиком метода для проверки и точкой переключения, которая может быть использована для его аннулирования.
Параметры:
invocation - обработчик метода, представляющий вызов. Не должен быть null.
guard - обработчик метода, представляющий проверку. Он должен быть совместим с invocation обработчиком в соответствии с MethodHandles.guardWithTest(MethodHandle, MethodHandle, MethodHandle). Некоторые полезные проверки можно найти в классе Guards. Может быть null. Если он и точка переключения равны null, это безусловный вызов.
switchPoint - необязательная точка переключения, которая может быть использована для аннулирования этого связывания.
Исключения:
NullPointerException - если вызов равен null.

GuardedInvocation

public GuardedInvocation(MethodHandle invocation, MethodHandle guard, SwitchPoint switchPoint, Class<? extends Throwable> exception)
Создаёт новый защищённый вызов с обработчиком метода для проверки, точкой переключения, которая может быть использована для его аннулирования, и исключением, которое, если оно возникает при вызове, также аннулирует его.
Параметры:
invocation - обработчик метода, представляющий вызов. Не должен быть null.
guard - обработчик метода, представляющий проверку. Он должен быть совместим с invocation обработчиком в соответствии с MethodHandles.guardWithTest(MethodHandle, MethodHandle, MethodHandle). Некоторые полезные проверки можно найти в классе Guards. Может быть null. Если он, точка переключения и исключение все равны null, это безусловный вызов.
switchPoint - необязательная точка переключения, которая может быть использована для аннулирования этого связывания.
exception - необязательный тип исключения, который при возникновении при вызове также аннулирует его.
Исключения:
NullPointerException - если вызов равен null.

GuardedInvocation

public GuardedInvocation(MethodHandle invocation, MethodHandle guard, SwitchPoint[] switchPoints, Class<? extends Throwable> exception)
Создаёт новый защищённый вызов с обработчиком метода для проверки, любым количеством точек переключения, которые могут быть использованы для его аннулирования, и исключением, которое, если оно возникает при вызове, также аннулирует его.
Параметры:
invocation - обработчик метода, представляющий вызов. Не должен быть null.
guard - обработчик метода, представляющий проверку. Он должен быть совместим с invocation обработчиком в соответствии с MethodHandles.guardWithTest(MethodHandle, MethodHandle, MethodHandle). Некоторые полезные проверки можно найти в классе Guards. Может быть null. Если он и исключение оба null, и точки переключения не были указаны, это безусловный вызов.
switchPoints - необязательные точки переключения, которые могут быть использованы для аннулирования этого связывания.
exception - необязательный тип исключения, который при возникновении при вызове также аннулирует его.
Исключения:
NullPointerException - если вызов равен null.

Подробное описание методов

getInvocation

public MethodHandle getInvocation()
Возвращает обработчик метода вызова.
Возвращает:
обработчик метода вызова. Он никогда не будет null.

getGuard

public MethodHandle getGuard()
Возвращает обработчик метода проверки.
Возвращает:
обработчик метода проверки. Может быть null.

getSwitchPoints

public SwitchPoint[] getSwitchPoints()
Возвращает точки переключения, которые могут использоваться для аннулирования связывания этого обработчика вызова.
Возвращает:
точки переключения, которые могут использоваться для аннулирования связывания этого обработчика вызова. Может быть null.

getException

public Class<? extends Throwable> getException()
Возвращает тип исключения, которое, если оно возникает при вызове, должно аннулировать связывание этого защищённого вызова.
Возвращает:
тип исключения, который, если оно возникнет, должен использоваться для аннулирования связывания. Может быть null.

hasBeenInvalidated

public boolean hasBeenInvalidated()
Возвращает true, если и только если у этого защищённого вызова есть хотя бы одна аннулированная точка переключения.
Возвращает:
true, если и только если у этого защищённого вызова есть хотя бы одна аннулированная точка переключения.

replaceMethods

public GuardedInvocation replaceMethods(MethodHandle newInvocation, MethodHandle newGuard)
Создаёт новый защищённый вызов с разными методами, сохраняя точку переключения.
Параметры:
newInvocation - новый вызов
newGuard - новая проверка
Возвращает:
новый защищённый вызов с заменёнными методами и той же точкой переключения, что и у этого вызова.

addSwitchPoint

public GuardedInvocation addSwitchPoint(SwitchPoint newSwitchPoint)
Создаёт новый защищённый вызов с добавленной точкой переключения.
Параметры:
newSwitchPoint - новая точка переключения. Может быть null, в этом случае этот метод возвращает текущий защищённый вызов без изменений.
Возвращает:
защищённый вызов с добавленной точкой переключения.

asType

public GuardedInvocation asType(MethodType newType)
Изменяет тип вызова, как если бы MethodHandle.asType(MethodType) был применён к его вызову и его проверке, если она есть (с типом возврата, изменённым на boolean, и количеством параметров, потенциально усечённым для проверки). Если вызов уже имеет требуемый тип, возвращает этот объект.
Параметры:
newType - новый тип вызова.
Возвращает:
защищённый вызов с применённым к нему новым типом.

asType

public GuardedInvocation asType(LinkerServices linkerServices, MethodType newType)
Изменяет тип вызова, как если бы LinkerServices.asType(MethodHandle, MethodType) был применён к его вызову и его проверке, если она есть (с типом возврата, изменённым на boolean, и количеством параметров, потенциально усечённым для проверки). Если вызов уже имеет требуемый тип, возвращает этот объект.
Параметры:
linkerServices - используемые сервисы связывания для преобразования
newType - новый тип вызова.
Возвращает:
защищённый вызов с применённым к нему новым типом.

asTypeSafeReturn

public GuardedInvocation asTypeSafeReturn(LinkerServices linkerServices, MethodType newType)
Изменяет тип вызова, как если бы LinkerServices.asTypeLosslessReturn(MethodHandle, MethodType) был применён к его вызову, а LinkerServices.asType(MethodHandle, MethodType) — к его защите, если она есть (при этом тип возвращаемого значения для защиты изменится на boolean, а количество параметров может быть укорочено). Если тип вызова не изменится, возвращает этот объект.
Parameters:
linkerServices — используемые для преобразования сервисы линкера
newType — новый тип вызова.
Returns:
защищённый вызов с применённым новым типом.

asType

public GuardedInvocation asType(CallSiteDescriptor desc)
Изменяет тип вызова, как если бы MethodHandle.asType(MethodType) был применён к его вызову и его защите, если она есть (при этом тип возвращаемого значения для защиты изменится на boolean). Если вызов уже имеет требуемый тип, возвращает этот объект.
Parameters:
desc — описание места вызова, тип метода которого адаптируется.
Returns:
защищённый вызов с применённым новым типом.

filterArguments

public GuardedInvocation filterArguments(int pos, MethodHandle... filters)
Применяет фильтры аргументов как к вызову, так и к защите (если она существует и имеет как минимум pos + 1 параметров) с помощью MethodHandles.filterArguments(MethodHandle, int, MethodHandle...).
Parameters:
pos — позиция первого фильтруемого аргумента
filters — фильтры аргументов
Returns:
отфильтрованный вызов

dropArguments

public GuardedInvocation dropArguments(int pos, List<Class<?>> valueTypes)
Создаёт вызов, который отбрасывает аргументы как в вызове, так и в защите (если она существует и имеет как минимум pos параметров) с помощью MethodHandles.dropArguments(MethodHandle, int, List).
Parameters:
pos — позиция первого отбрасываемого аргумента
valueTypes — типы отбрасываемых значений
Returns:
вызов, отбрасывающий аргументы

dropArguments

public GuardedInvocation dropArguments(int pos, Class<?>... valueTypes)
Создаёт вызов, который отбрасывает аргументы как в вызове, так и в защите (если она существует и имеет как минимум pos параметров) с помощью MethodHandles.dropArguments(MethodHandle, int, Class...).
Parameters:
pos — позиция первого отбрасываемого аргумента
valueTypes — типы отбрасываемых значений
Returns:
вызов, отбрасывающий аргументы

compose

public MethodHandle compose(MethodHandle fallback)
Компонует вызов, защиту, точки переключения и исключение в составной обработчик методов, который знает, как обработать ситуацию, когда защита завершится неудачно или вызов будет недействительным.
Parameters:
fallback — обработчик методов по умолчанию на случай, если точка переключения станет недействительной, защита вернёт false или возникнет необрабатываемое исключение.
Returns:
составной обработчик методов.

compose

public MethodHandle compose(MethodHandle guardFallback, MethodHandle switchpointFallback, MethodHandle catchFallback)
Компонует вызов, защиту, точки переключения и исключение в составной обработчик методов, который знает, как обработать ситуацию, когда защита завершится неудачно или вызов будет недействительным.
Parameters:
guardFallback — обработчик методов по умолчанию на случай, если защита вернёт false.
switchpointFallback — обработчик методов по умолчанию на случай, если точка переключения станет недействительной.
catchFallback — обработчик по умолчанию на случай срабатывания обработчика исключений.
Returns:
составной обработчик методов.

© 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/GuardedInvocation.html

Spec-Zone.ru

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