Spec-Zone.ru › OpenJDK 17

Класс 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, 2021, 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/17/docs/api/jdk.dynalink/jdk/dynalink/linker/support/CompositeTypeBasedGuardingDynamicLinker.html

Spec-Zone.ru

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