Spec-Zone.ru › OpenJDK 27

Интерфейс ClassLoaderReference

Все суперинтерфейсы:
Mirror, ObjectReference, Value
public interface ClassLoaderReference extends ObjectReference
Объект загрузчика классов из целевой виртуальной машины. ClassLoaderReference — это ObjectReference с дополнительным доступом к информации о загрузчике классов из целевой виртуальной машины. Экземпляры ClassLoaderReference получаются при вызовах ReferenceType.classLoader()
Начиная с:
1.3
См. также:
  • ObjectReference

Краткое описание полей

Поля, объявленные в интерфейсе ObjectReference

INVOKE_NONVIRTUAL, INVOKE_SINGLE_THREADED
Модификатор и тип Поле Описание
static final int INVOKE_NONVIRTUAL
Выполняет невиртуальный вызов метода
static final int INVOKE_SINGLE_THREADED
Выполняет вызов метода, возобновляя только вызывающий поток

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

Модификатор и тип Метод Описание
List<ReferenceType> definedClasses()
Возвращает список всех классов, определённых этим загрузчиком классов.
List<ReferenceType> visibleClasses()
Возвращает список всех классов, которые этот загрузчик классов может найти по имени с помощью ClassLoader::loadClass, Class::forName и связывания байт-кода в целевой виртуальной машине.

Методы, объявленные в интерфейсе Mirror

toString, virtualMachine
Модификатор и тип Метод Описание
String toString()
Возвращает строку с описанием этого зеркала
VirtualMachine virtualMachine()
Возвращает VirtualMachine, которому принадлежит это зеркало.

Методы, объявленные в интерфейсе ObjectReference

disableCollection, enableCollection, entryCount, equals, getValue, getValues, hashCode, invokeMethod, isCollected, owningThread, referenceType, referringObjects, setValue, uniqueID, waitingThreads
Модификатор и тип Метод Описание
void disableCollection()
Предотвращает сборку мусора для этого объекта.
void enableCollection()
Разрешает сборку мусора для этого объекта.
int entryCount()
Возвращает количество раз, которое текущий владеющий поток входил в монитор этого объекта, если владеющий поток является платформенным потоком; возвращает 0, если объектом не владеет платформенный поток.
boolean equals(Object obj)
Сравнивает указанный объект с этим ObjectReference на равенство.
Value getValue(Field sig)
Возвращает значение заданного поля экземпляра или статического поля этого объекта.
Map<Field,Value> getValues(List<? extends Field> fields)
Возвращает значения нескольких полей экземпляра и/или статических полей этого объекта.
int hashCode()
Возвращает значение хеш-кода для этого ObjectReference.
Value invokeMethod(ThreadReference thread, Method method, List<? extends Value> arguments, int options)
Вызывает указанный Method для этого объекта в целевой виртуальной машине.
boolean isCollected()
Определяет, был ли этот объект собран сборщиком мусора в целевой виртуальной машине.
ThreadReference owningThread()
Возвращает ThreadReference платформенного потока, если таковой имеется, который в данный момент владеет монитором этого объекта.
ReferenceType referenceType()
Возвращает ReferenceType, представляющий тип этого объекта.
List<ObjectReference> referringObjects(long maxReferrers)
Возвращает объекты, которые непосредственно ссылаются на этот объект.
void setValue(Field field, Value value)
Устанавливает значение заданного поля экземпляра или статического поля этого объекта.
long uniqueID()
Возвращает уникальный идентификатор этого ObjectReference.
List<ThreadReference> waitingThreads()
Возвращает список, содержащий ThreadReference для каждого платформенного потока, который в данный момент ожидает монитор этого объекта.

Методы, объявленные в интерфейсе Value

type
Модификатор и тип Метод Описание
Type type()
Возвращает тип этого значения во время выполнения.

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

definedClasses

List<ReferenceType> definedClasses()
Возвращает список всех классов, определённых этим загрузчиком классов. Порядок элементов в списке не гарантируется. Возвращаемый список включает все ссылочные типы, в том числе скрытые классы или интерфейсы, загруженные как минимум до стадии подготовки, а также типы (например, массивы), для которых подготовка не определена.
Возвращает:
List ReferenceType объектов, представляющих типы, определённые этим загрузчиком классов. Длина списка равна 0, если этим загрузчиком классов не определено ни одного типа.

visibleClasses

List<ReferenceType> visibleClasses()
Возвращает список всех классов, которые этот загрузчик классов может найти по имени с помощью ClassLoader::loadClass, Class::forName и связывания байт-кода в целевой виртуальной машине. То есть все классы, для которых этот загрузчик классов зарегистрирован как инициирующий загрузчик.

Каждый класс в возвращаемом списке создан этим загрузчиком классов: либо он определён непосредственно этим загрузчиком, либо загружен делегированием другому загрузчику классов (см. JVMS §5.3).

В возвращаемый список не входят скрытые классы или интерфейсы и классы-массивы, у которых тип элемента является скрытым классом или интерфейсом, поскольку их невозможно обнаружить с помощью какого-либо загрузчика классов.

Список видимых классов обладает полезными свойствами в отношении пространства имён типов. Имя конкретного типа встречается в списке не более одного раза. Каждое поле или переменная, объявленные с таким именем типа в классе, определённом этим загрузчиком классов, должны разрешаться в этот единственный тип.

Порядок элементов в возвращаемом списке не гарантируется.

Обратите внимание: в отличие от definedClasses() и VirtualMachine.allClasses(), некоторые возвращаемые ссылочные типы могут быть не подготовлены. Попытки выполнить некоторые операции с неподготовленными ссылочными типами (например, fields()) приведут к выбросу ClassNotPreparedException. Используйте ReferenceType.isPrepared(), чтобы определить, подготовлен ли ссылочный тип.

Возвращает:
List ReferenceType объектов, представляющих классы, которые этот загрузчик классов может найти по имени. Длина списка равна 0, если этому загрузчику классов не видны классы.
См. также:
  • JVM TI GetClassLoaderClasses

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по 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