Интерфейс ClassHierarchyResolver
- Функциональный интерфейс:
- Это функциональный интерфейс и поэтому может быть использован в качестве целевого назначения для лямбда-выражения или ссылки на метод.
@FunctionalInterface public interface ClassHierarchyResolver
- См. Спецификацию Java Virtual Machine:
- 4.10.1.2 Система типов верификации
- С:
- 24
- См. также:
Краткое описание вложенных классов
| Модификатор и тип | Интерфейс | Описание |
|---|---|---|
static interface |
ClassHierarchyResolver.ClassHierarchyInfo |
Информация о разрешенном классе. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
default ClassHierarchyResolver |
cached() |
Возвращает ClassHierarchyResolver, который кэширует информацию об иерархии классов из этого резольвера. |
default ClassHierarchyResolver |
cached |
Возвращает ClassHierarchyResolver, который кэширует информацию об иерархии классов из этого резольвера. |
static ClassHierarchyResolver |
defaultResolver() |
Возвращает экземпляр по умолчанию ClassHierarchyResolver, который получает ClassHierarchyResolver.ClassHierarchyInfo из системного загрузчика классов с помощью рефлексии. |
ClassHierarchyResolver.ClassHierarchyInfo |
getClassInfo |
Возвращает ClassHierarchyInfo для данного имени класса, или
null, если имя неизвестно резольверу. |
static ClassHierarchyResolver |
of |
Возвращает ClassHierarchyResolver, который извлекает информацию об иерархии классов из набора метаданных об иерархии классов. |
static ClassHierarchyResolver |
ofClassLoading |
Возвращает ClassHierarchyResolver, который извлекает информацию об иерархии классов через классы, загруженные загрузчиком классов с помощью рефлексии. |
static ClassHierarchyResolver |
ofClassLoading |
Возвращает ClassHierarchyResolver, который извлекает информацию об иерархии классов через классы, доступные для MethodHandles.Lookup с помощью рефлексии. |
static ClassHierarchyResolver |
ofResourceParsing |
Возвращает ClassHierarchyResolver, который извлекает информацию об иерархии классов из файлов class, расположенных загрузчиком классов. |
static ClassHierarchyResolver |
ofResourceParsing |
Возвращает ClassHierarchyResolver, который извлекает информацию об иерархии классов из файлов class, возвращаемых функцией отображения. |
default ClassHierarchyResolver |
orElse |
Цепочечно связывает этот ClassHierarchyResolver с другим, который будет консультироваться, если этот резольвер ничего не знает о заданном классе. |
Подробное описание методов
defaultResolver
static ClassHierarchyResolver defaultResolver()
ClassHierarchyResolver, который получает ClassHierarchyResolver.ClassHierarchyInfo из системного загрузчика классов с помощью рефлексии. Этот экземпляр по умолчанию не может загружать классы из других загрузчиков классов, таких как загрузчик классов вызывающего метода; он также загружает системные классы, если они ещё не загружены, что делает его непригодным для инструментирования.- Возвращает:
- экземпляр по умолчанию
ClassHierarchyResolver, который получаетClassHierarchyResolver.ClassHierarchyInfoиз системного загрузчика классов с помощью рефлексии
getClassInfo
ClassHierarchyResolver.ClassHierarchyInfo getClassInfo(ClassDesc classDesc)
ClassHierarchyInfo для заданного имени класса или
null, если имя неизвестно разрешителю. Этот метод вызывается API файлов классов для получения информации о иерархии класса или интерфейса; пользователи не должны вызывать этот метод. Символьный дескриптор, переданный API файлов классов, всегда представляет класс или интерфейс.
- Параметры:
-
classDesc- дескриптор класса - Возвращает:
ClassHierarchyInfoдля заданного имени класса илиnull, если имя неизвестно разрешителю- Исключение:
-
IllegalArgumentException- если класс не должен запрашиваться для получения информации об иерархии, например, когда он недоступен
orElse
default ClassHierarchyResolver orElse(ClassHierarchyResolver other)
ClassHierarchyResolver с другим, чтобы получить информацию, если этот разрешитель не знает о указанном классе.- Требования к реализации:
- По умолчанию возвращается разрешитель, реализующий запрос
otherразрешителя в случае, если этот разрешитель возвращаетnull. - Параметры:
-
other- другой разрешитель - Возвращает:
- цепной разрешитель
cached
default ClassHierarchyResolver cached(Supplier<Map<ClassDesc, ClassHierarchyResolver.ClassHierarchyInfo>> cacheFactory)
ClassHierarchyResolver, который кеширует информацию об иерархии классов из этого разрешителя. Возвращаемый разрешитель не будет обновляться, если результаты запроса от этого разрешителя изменились со временем. Поведение возвращаемого разрешителя зависит от потокобезопасности карты, возвращаемой cacheFactory.- Требования к реализации:
- По умолчанию возвращает разрешитель, содержащий экземпляр кеширующей карты, предоставленной
cacheFactory. Он ищет в кэше, или если имя класса ещё не запрошено, запрашивает этот разрешитель и кэширует результат, включаяnull, указывающий на неизвестные имена классов. Кеширующая карта может отклонятьnullключи и значения. - Параметры:
-
cacheFactory- фабрика для кэша - Возвращает:
ClassHierarchyResolver, который кеширует информацию об иерархии классов из этого разрешителя
cached
default ClassHierarchyResolver cached()
ClassHierarchyResolver, который кеширует информацию об иерархии классов из этого разрешителя. Возвращаемый разрешитель не будет обновляться, если результаты запроса от этого разрешителя изменились со временем. Возвращаемый разрешитель не потокобезопасен. MethodHandles.Lookup lookup = ...;
ClassHierarchyResolver resolver = ClassHierarchyResolver.ofClassLoading(lookup).cached();
- Требования к реализации:
- По умолчанию вызывается
cached(Supplier)сHashMapпоставщиком в качествеcacheFactory. - Возвращает:
ClassHierarchyResolver, который кеширует информацию об иерархии классов из этого разрешителя
ofResourceParsing
static ClassHierarchyResolver ofResourceParsing(Function<ClassDesc, InputStream> classStreamResolver)
ClassHierarchyResolver, который извлекает информацию об иерархии классов из файлов class, возвращаемых функцией отображения. Функция отображения должна возвращать null, если она не может предоставить файл class для имени класса. Любой IOException из предоставленного входного потока перехватывается как UncheckedIOException в getClassInfo(ClassDesc).- Параметры:
-
classStreamResolver- отображает дескрипторы классов вclassфайлы входных потоков - Возвращает:
ClassHierarchyResolver, который извлекает информацию об иерархии классов из файловclass, возвращаемых функцией отображения
ofResourceParsing
static ClassHierarchyResolver ofResourceParsing(ClassLoader loader)
ClassHierarchyResolver, который извлекает информацию об иерархии классов из файлов class, расположенных загрузчиком классов.- Параметры:
-
loader- загрузчик классов, для поиска файлов классов - Возвращает:
ClassHierarchyResolver, который извлекает информацию об иерархии классов из файловclass, расположенных загрузчиком классов
of
static ClassHierarchyResolver of(Collection<ClassDesc> interfaces, Map<ClassDesc, ClassDesc> classToSuperClass)
ClassHierarchyResolver, который извлекает информацию об иерархии классов из коллекций метаданных иерархии классов.- Параметры:
-
interfaces- коллекция классов, известных как интерфейсы -
classToSuperClass- карта из классов к их родительским классам - Возвращает:
ClassHierarchyResolver, который извлекает информацию об иерархии классов из коллекций метаданных иерархии классов
ofClassLoading
static ClassHierarchyResolver ofClassLoading(ClassLoader loader)
ClassHierarchyResolver, который извлекает информацию об иерархии классов через классы, загруженные загрузчиком классов с помощью рефлексии.- Параметры:
-
loader- загрузчик классов - Возвращает:
ClassHierarchyResolver, который извлекает информацию об иерархии классов через классы, загруженные загрузчиком классов с помощью рефлексии
ofClassLoading
static ClassHierarchyResolver ofClassLoading(MethodHandles.Lookup lookup)
ClassHierarchyResolver, который извлекает информацию об иерархии классов через классы, доступные для MethodHandles.Lookup с помощью рефлексии. Если разрешенный класс недоступен для данного поиска, getClassInfo(ClassDesc) выбрасывает IllegalArgumentException вместо возвращения null.- Параметры:
-
lookup- поиск, должен иметь возможность получить доступ к классам для разрешения - Возвращает:
ClassHierarchyResolver, который извлекает информацию об иерархии классов через классы, доступные дляMethodHandles.Lookupс помощью рефлексии
© 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/java.base/java/lang/classfile/ClassHierarchyResolver.html