Spec-Zone.ru › OpenJDK 21

Класс CompositeTypeBasedGuardingDynamicLinker

java.lang.Object
jdk.dynalink.linker.support.CompositeTypeBasedGuardingDynamicLinker
Все реализуемые интерфейсы:
GuardingDynamicLinker, TypeBasedGuardingDynamicLinker
public class CompositeTypeBasedGuardingDynamicLinker extends Object implements TypeBasedGuardingDynamicLinker
Составной динамический линкер, обеспечивающий проверку типа. Если встретится получатель класса, который ещё не был виден, все линковщики последовательно вызываются для метода TypeBasedGuardingDynamicLinker.canLinkType(Class). Линковщики, вернувшие true, связываются с классом, и в следующий раз, когда встретится получатель того же типа, связывание делегируется только этим линковщикам, ускоряя обработку.

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

Конструктор Описание
CompositeTypeBasedGuardingDynamicLinker(Iterable<? extends TypeBasedGuardingDynamicLinker> linkers)
Создаёт новый составной линкер, основанный на типе.

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

Модификатор и тип Метод Описание
boolean canLinkType(Class<?> type)
Возвращает true, если хотя бы один из составных линковщиков возвращает true для метода TypeBasedGuardingDynamicLinker.canLinkType(Class) для указанного типа.
GuardedInvocation getGuardedInvocation(LinkRequest linkRequest, LinkerServices linkerServices)
Создаёт защищённое обращение, подходящее для конкретного вызова с указанными аргументами в месте вызова.
static List<GuardingDynamicLinker> optimize(Iterable<? extends GuardingDynamicLinker> linkers)
Оптимизирует список линковщиков, основанных на типе.

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

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

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

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, 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/CompositeTypeBasedGuardingDynamicLinker.html

Spec-Zone.ru

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