Интерфейс GuardingDynamicLinker
- Все известные подинтерфейсы:
TypeBasedGuardingDynamicLinker
- Все известные реализующие классы:
BeansLinker, CompositeGuardingDynamicLinker, CompositeTypeBasedGuardingDynamicLinker
public interface GuardingDynamicLinker
GuardingDynamicLinker. Обычно они задают их как prioritized linkers в DynamicLinkerFactory, который они настраивают для себя, и, возможно, также задают некоторые из них как fallback
linkers для обработки специфичных для языка ситуаций, например «свойство не найдено». Для линкеров, основанных на Java-классе объектов, рассмотрите возможность реализации интерфейса TypeBasedGuardingDynamicLinker вместо этого интерфейса. Если требуется реализовать преобразования типов, специфичные для языка, реализуйте также интерфейс GuardingTypeConverterFactory в GuardingDynamicLinker.
Языки могут предоставлять линкеры другим средам выполнения языков для automatic discovery с помощью GuardingDynamicLinkerExporter.
- С версии:
- 9
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
GuardedInvocation |
getGuardedInvocation |
Создает защищенный вызов, подходящий для конкретного вызова с указанными аргументами в точке вызова. |
Подробное описание методов
getGuardedInvocation
GuardedInvocation getGuardedInvocation(LinkRequest linkRequest, LinkerServices linkerServices) throws Exception
- Параметры:
-
linkRequest— объект, описывающий запрос на связывание конкретного вызова -
linkerServices— службы линкера - Возвращает:
- защищенный вызов с дескриптором метода, подходящим для аргументов, а также с защитным условием, при невыполнении которого должно запускаться повторное связывание. Если разрешить вызов не удается, необходимо вернуть null. Если возвращаемый вызов является безусловным (что на практике встречается довольно редко), защитное условие в возвращаемом значении может быть null. Вызов также может содержать любое количество точек переключения для асинхронной инвалидации связывания, а также подкласс
Throwable, описывающий ожидаемое исключение, которое также запускает повторное связывание (часто быстрее полагаться на редко возникающее, но ожидаемоеClassCastException, чем на всегда проверяемое защитное условиеinstanceof). Хотя линкер должен создавать вызов с типами параметров, соответствующими типам в дескрипторе точки вызова запроса на связывание, ему не следует пытаться сопоставить ожидаемый в точке вызова тип возвращаемого значения, за исключением случаев, когда это можно сделать только с помощью преобразований, не приводящих к потере точности или диапазона значений. Дополнительные пояснения см. в разделеLinkerServices.asTypeLosslessReturn(MethodHandle, MethodType). - Вызывает:
-
Exception— если операция не удалась по какой-либо причине
© 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://docs.oracle.com/en/java/javase/25/docs/api/jdk.dynalink/jdk/dynalink/linker/GuardingDynamicLinker.html