Spec-Zone.ru › OpenJDK 25

Класс CompositeTypeBasedGuardingDynamicLinker

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

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

Конструктор Описание
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)
Оптимизирует список линкеров с проверкой по типу.

Методы, объявленные в классе 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.

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по API и документацию для разработчиков см. в документации Java SE, содержащей более подробные описания для разработчиков, обзоры концепций, определения терминов, обходные решения и рабочие примеры кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или её аффилированных лиц в США и других странах.
Авторские права © 1993, 2025, Oracle и/или её аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

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

Spec-Zone.ru

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