Spec-Zone.ru › OpenJDK 27

Класс 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
Модификатор и тип Метод Описание
protected Object clone()
Создает и возвращает копию этого объекта.
boolean equals(Object obj)
Указывает, является ли другой объект «равным» этому объекту.
protected void finalize()
Устарело и подлежит удалению: этот элемент API может быть удален в будущей версии.
Финализация объявлена устаревшей и подлежит удалению в одном из будущих выпусков.
final Class<?> getClass()
Возвращает класс времени выполнения этого Object.
int hashCode()
Возвращает значение хеш-кода для этого объекта.
final void notify()
Пробуждает один поток, ожидающий на мониторе этого объекта.
final void notifyAll()
Пробуждает все потоки, ожидающие на мониторе этого объекта.
String toString()
Возвращает строковое представление объекта.
final void wait()
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt.
final void wait(long timeoutMillis)
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt, либо до истечения определенного времени.
final void wait(long timeoutMillis, int nanos)
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt, либо до истечения определенного времени.

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

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, 2026, 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.

Spec-Zone.ru

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