Интерфейс ClassHierarchyResolver
- Функциональный интерфейс:
- Это функциональный интерфейс, поэтому его можно использовать в качестве целевого типа для лямбда-выражения или ссылки на метод.
@FunctionalInterface public interface ClassHierarchyResolver
- См. Спецификацию виртуальной машины Java:
- 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 Class-File для получения сведений об иерархии класса или интерфейса; пользователям не следует вызывать этот метод. Символьный дескриптор, передаваемый API Class-File, всегда представляет класс или интерфейс.
- Параметры:
-
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://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/lang/classfile/ClassHierarchyResolver.html