Класс CompositeTypeBasedGuardingDynamicLinker
java.lang.Object
jdk.dynalink.linker.support.CompositeTypeBasedGuardingDynamicLinker
- Все реализованные интерфейсы:
-
GuardingDynamicLinker,TypeBasedGuardingDynamicLinker
public class CompositeTypeBasedGuardingDynamicLinker extends Object implements TypeBasedGuardingDynamicLinker
Составной динамический линкер, использующий проверку типа. При встрече получателя класса, который ещё не был обработан, все линтеры последовательно проверяются на возможность связывания с помощью метода
TypeBasedGuardingDynamicLinker.canLinkType(Class). Линтеры, вернувшие true, связываются с классом. В следующий раз, когда встречается получатель того же типа, связывание делегируется только этим линтерам, что ускоряет обработку.- С:
- 9
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
CompositeTypeBasedGuardingDynamicLinker |
Создаёт новый составной линкер, базирующийся на типе. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
boolean |
canLinkType |
Возвращает true, если хотя бы один из составных линтеров вернул true из метода TypeBasedGuardingDynamicLinker.canLinkType(Class) для данного типа. |
GuardedInvocation |
getGuardedInvocation |
Создаёт защищённое обращение, подходящее для конкретного вызова с указанными аргументами в точке вызова. |
static List |
optimize |
Оптимизирует список линтеров, основанных на типе. |
Подробное описание конструкторов
CompositeTypeBasedGuardingDynamicLinker
public CompositeTypeBasedGuardingDynamicLinker(Iterable<? extends TypeBasedGuardingDynamicLinker> linkers)
Создаёт новый компонентный обработчик связывания типов.
- Параметры:
-
linkers- обработчики связывания компонентов - Исключения:
-
NullPointerException- еслиlinkersили любой из его элементов равны null.
Подробное описание методов
canLinkType
public boolean canLinkType(Class<?> type)
Возвращает true, если хотя бы один из составных обработчиков связывания возвращает true из
TypeBasedGuardingDynamicLinker.canLinkType(Class) для типа.- Указано в:
-
canLinkTypeв интерфейсеTypeBasedGuardingDynamicLinker - Параметры:
-
type- тип для связывания - Возвращает:
- true, если хотя бы один из составных обработчиков связывания возвращает true из
TypeBasedGuardingDynamicLinker.canLinkType(Class), в противном случае — false.
getGuardedInvocation
public GuardedInvocation getGuardedInvocation(LinkRequest linkRequest, LinkerServices linkerServices) throws Exception
Описание скопировано из интерфейса:
GuardingDynamicLinkerСоздаёт защищённое вызов, соответствующий конкретному вызову со указанными аргументами в месте вызова.
- Указано в:
-
getGuardedInvocationв интерфейсеGuardingDynamicLinker - Параметры:
-
linkRequest- объект, описывающий запрос на связывание конкретного вызова -
linkerServices- сервисы связывания - Возвращает:
- защищённый вызов с методом обработки, подходящим для аргументов, а также условием защиты, которое при не выполнении должно вызвать повторное связывание. Должен вернуть null, если вызов не может быть разрешён. Если возвращаемый вызов безусловен (что на самом деле довольно редко), защита в возвращаемом значении может быть null. Вызов также может иметь любое количество точек переключения для асинхронной проверки связи, а также подкласс
Throwable, который описывает ожидаемое условие исключения, которое также вызывает повторное связывание (часто быстрее полагаться на редкое, но ожидаемоеClassCastException, чем на всегда вычисляемоеinstanceofусловие защиты). Хотя обработчик должен создать вызов с типами параметров, соответствующими описанию места вызова запроса на связывание, он не должен пытаться сопоставить ожидаемый тип возвращаемого значения в месте вызова, за исключением случаев, когда это можно сделать только с преобразованиями, которые не теряют ни точности, ни величины, см.LinkerServices.asTypeLosslessReturn(MethodHandle, MethodType)для дополнительного объяснения. - Исключения:
-
Exception- если операция терпит неудачу по какой-либо причине
optimize
public static List<GuardingDynamicLinker> optimize(Iterable<? extends GuardingDynamicLinker> linkers)
Оптимизирует список обработчиков связывания по типу. Если группа смежных обработчиков в списке реализует
TypeBasedGuardingDynamicLinker, они будут заменены одним экземпляром CompositeTypeBasedGuardingDynamicLinker, который содержит их.- Параметры:
-
linkers- список обработчиков связывания для оптимизации - Возвращает:
- оптимизированный список
- Исключения:
-
NullPointerException- еслиlinkersили любой из его элементов равны 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/CompositeTypeBasedGuardingDynamicLinker.html