Spec-Zone.ru › OpenJDK 27

Интерфейс ReferenceType

Все суперинтерфейсы:
Accessible, Comparable<ReferenceType>, Mirror, Type
Все известные подинтерфейсы:
ArrayType, ClassType, InterfaceType
public interface ReferenceType extends Type, Comparable<ReferenceType>, Accessible
Тип объекта в целевой виртуальной машине. ReferenceType охватывает классы, интерфейсы и типы массивов, определённые в Спецификации языка Java. Все объекты ReferenceType относятся к одному из следующих подинтерфейсов: ClassType для классов, InterfaceType для интерфейсов и ArrayType для массивов. Обратите внимание, что примитивные классы (например, reflected type для Integer.TYPE) представлены как ClassType. Виртуальная машина создаёт объекты Class для всех трёх типов, поэтому с точки зрения виртуальной машины каждому ReferenceType соответствует отдельный объект Class.

ReferenceType можно получить, запросив тип у конкретного ObjectReference или получив список всех ссылочных типов из VirtualMachine.

ReferenceType предоставляет доступ к статической информации о типе, такой как методы и поля, а также к динамической информации о типе, такой как соответствующий объект Class и загрузчик классов.

Любой метод в ReferenceType, который прямо или косвенно принимает ReferenceType в качестве параметра, может выбросить VMDisconnectedException, если целевая виртуальная машина отключена, а VMDisconnectEvent было или доступно для чтения из EventQueue.

Любой метод в ReferenceType, который прямо или косвенно принимает ReferenceType в качестве параметра, может выбросить VMOutOfMemoryException, если в целевой виртуальной машине закончилась память.

Любой метод в ReferenceType или метод, который прямо или косвенно принимает ReferenceType в качестве параметра, может выбросить ObjectCollectedException, если отображаемый тип был выгружен.

С версии:
1.3
См. также:
  • ObjectReference
  • ObjectReference.referenceType()
  • VirtualMachine
  • VirtualMachine.allClasses()

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

Модификатор и тип Метод Описание
List<Field> allFields()
Возвращает список, содержащий каждое Field, объявленное в этом типе, его суперклассах, реализованных интерфейсах и/или суперинтерфейсах.
List<Location> allLineLocations()
Возвращает список, содержащий объект Location для каждой исполняемой строки исходного кода в этом ссылочном типе.
List<Location> allLineLocations(String stratum, String sourceName)
Возвращает список, содержащий объект Location для каждой исполняемой строки исходного кода в этом ссылочном типе.
List<Method> allMethods()
Возвращает список, содержащий каждый Method, объявленный в этом типе, его суперклассах, реализованных интерфейсах и/или суперинтерфейсах.
List<String> availableStrata()
Возвращает доступные страты для этого ссылочного типа.
ClassLoaderReference classLoader()
Возвращает объект загрузчика классов, загрузившего класс, соответствующий этому типу.
ClassObjectReference classObject()
Возвращает объект класса, соответствующий этому типу в целевой виртуальной машине.
byte[] constantPool()
Возвращает необработанные байты пула констант в формате элемента constant_pool из формата файла класса, описанного в спецификации виртуальной машины Java.
int constantPoolCount()
Возвращает количество записей в пуле констант плюс один.
String defaultStratum()
Возвращает страту по умолчанию для этого ссылочного типа.
boolean equals(Object obj)
Сравнивает указанный объект с этим ReferenceType на равенство.
boolean failedToInitialize()
Определяет, завершилась ли неудачей инициализация этого класса.
Field fieldByName(String fieldName)
Находит видимое Field с указанным неоднозначным именем.
List<Field> fields()
Возвращает список, содержащий каждое Field, объявленное в этом типе.
String genericSignature()
Возвращает обобщённую сигнатуру этого типа, если она есть.
Value getValue(Field field)
Возвращает Value заданного статического Field этого типа.
Map<Field,Value> getValues(List<? extends Field> fields)
Возвращает карту, содержащую Value каждого статического Field из заданного списка.
int hashCode()
Возвращает значение хеш-кода этого ObjectReference.
List<ObjectReference> instances(long maxInstances)
Возвращает экземпляры этого ReferenceType.
boolean isAbstract()
Определяет, был ли этот тип объявлен абстрактным.
boolean isFinal()
Определяет, был ли этот тип объявлен как final.
boolean isInitialized()
Определяет, был ли инициализирован этот тип.
boolean isPrepared()
Определяет, был ли подготовлен этот тип.
boolean isStatic()
Определяет, был ли этот тип объявлен статическим.
boolean isVerified()
Определяет, был ли проверен этот тип.
List<Location> locationsOfLine(int lineNumber)
Возвращает список, содержащий все объекты Location, соответствующие заданному номеру строки.
List<Location> locationsOfLine(String stratum, String sourceName, int lineNumber)
Возвращает список, содержащий все объекты Location, соответствующие заданному номеру строки.
int majorVersion()
Возвращает старший номер версии класса, определённый в формате файла класса спецификации виртуальной машины Java.
List<Method> methods()
Возвращает список, содержащий каждый Method, непосредственно объявленный в этом типе.
List<Method> methodsByName(String name)
Возвращает список, содержащий каждый видимый Method с заданным именем.
List<Method> methodsByName(String name, String signature)
Возвращает список, содержащий каждый видимый Method с заданным именем и сигнатурой.
int minorVersion()
Возвращает младший номер версии класса, определённый в формате файла класса спецификации виртуальной машины Java.
default ModuleReference module()
Возвращает объект модуля, содержащего класс, соответствующий этому типу.
String name()
Возвращает имя этого объекта ReferenceType.
List<ReferenceType> nestedTypes()
Возвращает список объектов ReferenceType, объявленных внутри этого типа и загруженных в виртуальную машину.
String sourceDebugExtension()
Возвращает отладочное расширение исходного кода этого типа.
String sourceName()
Возвращает идентифицирующее имя исходного кода, соответствующего объявлению этого типа.
List<String> sourceNames(String stratum)
Возвращает идентифицирующие имена всех исходных текстов, соответствующих объявлению этого типа.
List<String> sourcePaths(String stratum)
Возвращает пути к исходному коду, соответствующему объявлению этого типа.
List<Field> visibleFields()
Возвращает список, содержащий каждое не скрытое и однозначное Field этого типа.
List<Method> visibleMethods()
Возвращает список, содержащий каждый Method, объявленный в этом типе или унаследованный им.

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

isPackagePrivate, isPrivate, isProtected, isPublic, modifiers
Модификатор и тип Метод Описание
boolean isPackagePrivate()
Определяет, представляет ли этот объект элемент с доступом на уровне пакета.
boolean isPrivate()
Определяет, представляет ли этот объект закрытый элемент.
boolean isProtected()
Определяет, представляет ли этот объект защищённый элемент.
boolean isPublic()
Определяет, представляет ли этот объект общедоступный элемент.
int modifiers()
Возвращает модификаторы языка программирования Java, закодированные в виде целого числа.

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

compareTo
Модификатор и тип Метод Описание
int compareTo(ReferenceType o)
Сравнивает этот объект с указанным объектом для определения порядка.

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

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

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

signature
Модификатор и тип Метод Описание
String signature()
Возвращает сигнатуру этого типа.

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

name

String name()
Возвращает имя этого объекта ReferenceType. Возвращаемое имя имеет тот же формат, что и имя, возвращаемое Class.getName().
Указано в:
name в интерфейсе Type
Возвращает:
строку, содержащую имя типа.
См. также:
  • Class.getName()

genericSignature

String genericSignature()
Получает обобщённую сигнатуру этого типа, если она существует. Обобщённые сигнатуры описаны в Спецификации виртуальной машины Java.
Возвращает:
строку, содержащую обобщённую сигнатуру, или null, если обобщённая сигнатура отсутствует.
Начиная с версии:
1.5

classLoader

ClassLoaderReference classLoader()
Получает объект загрузчика классов, загрузившего класс, соответствующий этому типу.
Возвращает:
объект ClassLoaderReference, представляющий загрузчик классов, или null, если класс был загружен загрузчиком классов начальной загрузки.

module

default ModuleReference module()
Получает объект модуля, содержащего класс, соответствующий этому типу. Не все целевые виртуальные машины поддерживают эту операцию. Используйте VirtualMachine.canGetModuleInfo(), чтобы определить, поддерживается ли эта операция.
Требования к реализации:
Реализация по умолчанию вызывает исключение UnsupportedOperationException.
Возвращает:
объект ModuleReference, представляющий модуль в целевой виртуальной машине.
Вызывает исключение:
UnsupportedOperationException — если целевая виртуальная машина не поддерживает эту операцию.
Начиная с версии:
9

sourceName

String sourceName() throws AbsentInformationException
Получает идентифицирующее имя исходного кода, соответствующего объявлению этого типа. Интерпретация этой строки определяется механизмом репозитория исходного кода.

Возвращаемое имя зависит от страты, используемой по умолчанию в виртуальной машине (VirtualMachine.getDefaultStratum()). В эталонной реализации при использовании базовой страты возвращается неквалифицированное имя исходного файла, содержащего объявление этого типа. В других стратах возвращается первое имя исходного кода для этой страты. Поскольку у других языков для ссылочного типа может быть несколько имён исходного кода, рекомендуется использовать Location.sourceName() или sourceNames(String).

Для массивов (ArrayType) и примитивных классов всегда вызывается AbsentInformationException.

Возвращает:
имя файла исходного кода в виде строки
Вызывает исключение:
AbsentInformationException — если имя исходного кода неизвестно

sourceNames

List<String> sourceNames(String stratum) throws AbsentInformationException
Получает идентифицирующие имена всех исходных файлов, соответствующих объявлению этого типа. Интерпретация этих имён определяется механизмом репозитория исходного кода.

Возвращаемые имена относятся к указанной страте (описание страт см. в Location). В эталонной реализации при использовании страты языка программирования Java возвращаемый список содержит один элемент: строку, являющуюся неквалифицированным именем исходного файла, содержащего объявление этого типа. В других стратах возвращаются все имена исходного кода, определённые для этой страты.

Параметры:
stratum — страта, из которой необходимо получить сведения, или null для страты по умолчанию объявляющего типа.
Возвращает:
список объектов String, каждый из которых представляет имя исходного кода
Вызывает исключение:
AbsentInformationException — если имена исходного кода неизвестны.

Для массивов (ArrayType) и примитивных классов всегда вызывается AbsentInformationException.

Начиная с версии:
1.4

sourcePaths

List<String> sourcePaths(String stratum) throws AbsentInformationException
Получает пути к исходному коду, соответствующему объявлению этого типа. Интерпретация этих путей определяется механизмом репозитория исходного кода.

Возвращаемые пути относятся к указанной страте (описание страт см. в Location). В эталонной реализации для страт, в которых путь к исходному коду явно не задан (в страте языка программирования Java он никогда не задаётся), возвращаемые строки представляют собой sourceNames(String) с добавленным в начало именем пакета этого ReferenceType, преобразованным в путь, зависящий от платформы. Например, на платформе Windows java.lang.Thread вернёт список из одного элемента: "java\lang\Thread.java".

Параметры:
stratum — страта, из которой необходимо получить сведения, или null для страты по умолчанию объявляющего типа.
Возвращает:
список объектов String, каждый из которых представляет путь к исходному коду
Вызывает исключение:
AbsentInformationException — если имена исходного кода неизвестны.

Для массивов (ArrayType) и примитивных классов всегда вызывается AbsentInformationException.

Начиная с версии:
1.4

sourceDebugExtension

String sourceDebugExtension() throws AbsentInformationException
Получает расширение отладки исходного кода для этого типа.

Не все целевые виртуальные машины поддерживают эту операцию. Используйте canGetSourceDebugExtension(), чтобы определить, поддерживается ли эта операция.

Возвращает:
атрибут расширения отладки исходного кода в виде строки
Вызывает исключение:
AbsentInformationException — если расширение не указано
UnsupportedOperationException — если целевая виртуальная машина не поддерживает эту операцию; см. canGetSourceDebugExtension(),

isStatic

boolean isStatic()
Определяет, был ли этот тип объявлен статическим. Статическими могут быть объявлены только вложенные типы, поэтому для любого типа уровня пакета, типа массива или примитивного класса возвращается false.
Возвращает:
true, если этот тип статический; иначе false.

isAbstract

boolean isAbstract()
Определяет, был ли этот тип объявлен абстрактным.

Для массивов (ArrayType) и примитивных классов возвращаемое значение не определено.

Возвращает:
true, если этот тип абстрактный; иначе false.

isFinal

boolean isFinal()
Определяет, был ли этот тип объявлен final.

Для массивов (ArrayType) и примитивных классов возвращаемое значение всегда равно true.

Возвращает:
true, если этот тип final; иначе false.

isPrepared

boolean isPrepared()
Определяет, был ли подготовлен этот тип. Определение подготовки класса см. в спецификации JVM.

Для массивов (ArrayType) и примитивных классов возвращаемое значение не определено.

Возвращает:
true, если этот тип подготовлен; иначе false.

isVerified

boolean isVerified()
Определяет, был ли проверен этот тип. Определение проверки класса см. в спецификации JVM.

Для массивов (ArrayType) и примитивных классов возвращаемое значение не определено.

Возвращает:
true, если этот тип проверен; иначе false.

isInitialized

boolean isInitialized()
Определяет, был ли инициализирован этот тип. Определение проверки класса см. в спецификации JVM. Для InterfaceType этот метод всегда возвращает то же значение, что и isPrepared().

Для массивов (ArrayType) и примитивных классов возвращаемое значение не определено.

Возвращает:
true, если этот тип инициализирован; иначе false.

failedToInitialize

boolean failedToInitialize()
Определяет, завершилась ли неудачей инициализация этого класса. Подробные сведения об инициализации класса см. в спецификации JVM.

Для массивов (ArrayType) и примитивных классов возвращаемое значение не определено.

Возвращает:
true, если была предпринята попытка инициализации и она завершилась неудачей; иначе false.

fields

List<Field> fields()
Возвращает список, содержащий каждое поле Field, объявленное в этом типе. Унаследованные поля не включаются. В список включаются все синтетические поля, созданные компилятором.

Для массивов (ArrayType) и примитивных классов возвращаемый список всегда пуст.

Возвращает:
список объектов Field; длина списка равна 0, если полей нет.
Вызывает исключение:
ClassNotPreparedException — если этот класс ещё не подготовлен.

visibleFields

List<Field> visibleFields()
Возвращает список, содержащий каждое не скрытое и однозначное поле Field этого типа. Включаются все поля, к которым можно обратиться из класса или его экземпляров по простому имени. Поля, неоднозначно унаследованные из нескольких источников, а также поля, скрытые полями с тем же именем в более недавно унаследованном классе, нельзя адресовать по простому имени, поэтому они не включаются в возвращаемый список. Все остальные унаследованные поля включаются. Подробности см. в разделе 8.3 JLS.

Для массивов (ArrayType) и примитивных классов возвращаемый список всегда пуст.

Возвращает:
список объектов Field; длина списка равна 0, если видимых полей нет.
Вызывает исключение:
ClassNotPreparedException — если этот класс ещё не подготовлен.

allFields

List<Field> allFields()
Возвращает список, содержащий каждое поле Field, объявленное в этом типе, его суперклассах, реализованных интерфейсах и/или суперинтерфейсах. Включаются все объявленные и унаследованные поля, независимо от того, скрыты они или унаследованы из нескольких источников.

Для массивов (ArrayType) и примитивных классов возвращаемый список всегда пуст.

Возвращает:
список объектов Field; длина списка равна 0, если полей нет.
Вызывает исключение:
ClassNotPreparedException — если этот класс ещё не подготовлен.

fieldByName

Field fieldByName(String fieldName)
Находит видимое поле Field с указанным однозначным именем. Этот метод использует правила наследования, заданные в JLS (8.3.3), для определения видимости.

Для массивов (ArrayType) и примитивных классов возвращаемое значение всегда равно null.

Параметры:
fieldName — строка, содержащая имя требуемого поля.
Возвращает:
объект Field, представляющий найденное поле, или null, если поля с указанным именем нет либо это имя неоднозначно.
Вызывает исключение:
ClassNotPreparedException — если этот класс ещё не подготовлен.

methods

List<Method> methods()
Возвращает список, содержащий каждый метод Method, непосредственно объявленный в этом типе. Унаследованные методы не включаются. В список включаются конструкторы, метод инициализации (если он есть), а также все синтетические методы, созданные компилятором.

Для массивов (ArrayType) и примитивных классов возвращаемый список всегда пуст.

Возвращает:
список объектов Method; длина списка равна 0, если методов нет.
Вызывает исключение:
ClassNotPreparedException — если этот класс ещё не подготовлен.

visibleMethods

List<Method> visibleMethods()
Возвращает список, содержащий каждый метод Method, объявленный в этом типе или унаследованный им. Методы суперклассов или суперинтерфейсов, которые были скрыты или переопределены, не включаются.

Обратите внимание: несмотря на это исключение, в возвращаемом списке могут присутствовать несколько унаследованных методов с одинаковой сигнатурой, однако не более одного из них может быть членом ClassType. Подробности см. в разделе 8.4.8 JLS.

Для массивов (ArrayType) и примитивных классов возвращаемый список всегда пуст.

Возвращает:
список объектов Method; длина списка равна 0, если видимых методов нет.
Вызывает исключение:
ClassNotPreparedException — если этот класс ещё не подготовлен.

allMethods

List<Method> allMethods()
Возвращает список, содержащий каждый метод Method, объявленный в этом типе, его суперклассах, реализованных интерфейсах и/или суперинтерфейсах. Включаются все объявленные и унаследованные методы, независимо от того, скрыты они или переопределены.

Для массивов (ArrayType) и примитивных классов возвращаемый список всегда пуст.

Возвращает:
список объектов Method; длина списка равна 0, если методов нет.
Вызывает исключение:
ClassNotPreparedException — если этот класс ещё не подготовлен.

methodsByName

List<Method> methodsByName(String name)
Возвращает список, содержащий каждый видимый метод Method с указанным именем. Чаще всего этот метод используется для поиска перегруженных методов.

Переопределённые и скрытые методы не включаются. Подробности см. в JLS (8.4.8).

Для массивов (ArrayType) и примитивных классов возвращаемый список всегда пуст.

Параметры:
name — имя метода, который требуется найти.
Возвращает:
список объектов Method, соответствующих указанному имени; длина списка равна 0, если подходящих методов не найдено.
Вызывает исключение:
ClassNotPreparedException — если этот класс ещё не подготовлен.

methodsByName

List<Method> methodsByName(String name, String signature)
Возвращает список, содержащий каждый видимый метод Method с указанными именем и сигнатурой. Строка сигнатуры — это сигнатура JNI целевого метода:
  • ()V
  • ([Ljava/lang/String;)V
  • (IIII)Z
Для определения видимости этот метод использует правила наследования, заданные в JLS (8.4.8).

Не более одного метода в списке является конкретным методом и компонентом ClassType; все остальные методы в списке абстрактные. Используйте ClassType.concreteMethodByName(String, String), чтобы получить только соответствующий конкретный метод.

Для массивов (ArrayType) и примитивных классов возвращаемый список всегда пуст.

Параметры:
name — имя метода, который требуется найти.
signature — сигнатура метода, который требуется найти
Возвращает:
список объектов Method, соответствующих указанным имени и сигнатуре; длина списка равна 0, если подходящих методов не найдено.
Вызывает исключение:
ClassNotPreparedException — если этот класс ещё не подготовлен.

nestedTypes

List<ReferenceType> nestedTypes()
Возвращает список объектов ReferenceType, объявленных внутри этого типа и загруженных в данный момент в виртуальную машину. Включаются как статические вложенные типы, так и нестатические вложенные типы (то есть внутренние типы). В возвращаемый список также включаются локальные внутренние типы (объявленные внутри блока кода в этом ссылочном типе).

Для массивов (ArrayType) и примитивных классов возвращаемый список всегда пуст.

Возвращает:
список вложенных объектов ReferenceType; длина списка равна 0, если вложенных типов нет.

getValue

Value getValue(Field field)
Получает Value заданного статического поля Field этого типа. Поле должно быть допустимым для этого типа, то есть объявленным в этом типе, суперклассе, суперинтерфейсе или реализованном интерфейсе.
Параметры:
field — поле, содержащее запрошенное значение
Возвращает:
Value поля экземпляра.
Вызывает исключение:
IllegalArgumentException — если поле недопустимо для класса этого объекта.

getValues

Map<Field,Value> getValues(List<? extends Field> fields)
Возвращает карту, содержащую Value каждого статического поля Field из указанного списка. Поля должны быть допустимыми для этого типа, то есть объявленными в этом типе, суперклассе, суперинтерфейсе или реализованном интерфейсе.
Параметры:
fields — список объектов Field, содержащих запрошенные значения.
Возвращает:
карту запрошенных объектов Field и соответствующих им значений Value.
Вызывает исключение:
IllegalArgumentException — если какое-либо поле недопустимо для класса этого объекта.
VMMismatchException — если аргумент Mirror и это зеркало не принадлежат одной и той же VirtualMachine.

classObject

ClassObjectReference classObject()
Возвращает объект класса, соответствующий этому типу в целевой виртуальной машине. Виртуальная машина создаёт объекты классов для каждого вида ReferenceType: классов, интерфейсов и типов массивов.
Возвращает:
ClassObjectReference для этого ссылочного типа в целевой виртуальной машине.

allLineLocations

List<Location> allLineLocations() throws AbsentInformationException
Возвращает список, содержащий объект Location для каждой исполняемой строки исходного кода в этом ссылочном типе.

Этот метод эквивалентен allLineLocations(vm.getDefaultStratum(),null); дополнительную информацию см. в allLineLocations(String,String).

Вызывает исключение:
AbsentInformationException — если для этого класса отсутствует информация о номерах строк, а класс содержит исполняемые элементы, не являющиеся native- или abstract-элементами.
ClassNotPreparedException — если этот класс ещё не подготовлен.

allLineLocations

List<Location> allLineLocations(String stratum, String sourceName) throws AbsentInformationException
Возвращает список, содержащий объект Location для каждой исполняемой строки исходного кода в этом ссылочном типе. Каждое местоположение сопоставляет строку исходного кода с диапазоном индексов кода. Начало диапазона можно определить с помощью Location.codeIndex(). Возвращаемый список может содержать несколько местоположений для определённого номера строки, если компилятор и/или виртуальная машина сопоставили эту строку с двумя или более несмежными диапазонами индексов кода. Обратите внимание, что одна и та же строка исходного кода может соответствовать разным диапазонам индексов кода в разных методах.

Для массивов (ArrayType) и примитивных классов возвращаемый список всегда пуст. Для интерфейсов (InterfaceType) возвращаемый список будет непустым, только если интерфейс содержит исполняемый код в инициализации класса.

Возвращаемый список относится к указанной страте (описание страт см. в Location).

Параметры:
stratum — страта, из которой необходимо получить сведения, или null для defaultStratum().
sourceName — возвращать местоположения только в этом исходном файле или null для возврата местоположений.
Возвращает:
список всех объектов Location, соответствующих строкам исходного кода.
Вызывает исключение:
AbsentInformationException — если для этого класса отсутствует информация о номерах строк, а класс содержит исполняемые элементы, не являющиеся native- или abstract-элементами. Также вызывается, если sourceName не равен null и информация об имени исходного кода отсутствует.
ClassNotPreparedException — если этот класс ещё не подготовлен.
Начиная с версии:
1.4

locationsOfLine

List<Location> locationsOfLine(int lineNumber) throws AbsentInformationException
Возвращает список, содержащий все объекты Location, соответствующие указанному номеру строки.

Этот метод эквивалентен locationsOfLine(vm.getDefaultStratum(), null, lineNumber); дополнительную информацию см. в locationsOfLine(java.lang.String,java.lang.String,int).

Параметры:
lineNumber — номер строки
Возвращает:
список всех объектов Location, соответствующих указанной строке.
Вызывает исключение:
AbsentInformationException — если для этого класса отсутствует информация о номерах строк.
ClassNotPreparedException — если этот класс ещё не подготовлен.
См. также:
  • VirtualMachine.getDefaultStratum()

locationsOfLine

List<Location> locationsOfLine(String stratum, String sourceName, int lineNumber) throws AbsentInformationException
Возвращает список, содержащий все объекты Location, соответствующие указанному номеру строки.

Для массивов (ArrayType) и примитивных классов возвращаемый список всегда пуст. Для интерфейсов (InterfaceType) возвращаемый список будет непустым, только если интерфейс содержит исполняемый код инициализации класса для указанного номера строки. Если для указанного номера строки нет исполняемого кода, возвращается пустой список.

Возвращаемый список относится к указанной страте (описание страт см. в Location).

Параметры:
stratum — страта, используемая для сравнения номера строки и имени исходного кода, или null для использования defaultStratum().
sourceName — имя исходного кода, содержащего номер строки, или null для сопоставления со всеми именами исходного кода
lineNumber — номер строки
Возвращает:
список всех объектов Location, соответствующих указанной строке.
Вызывает исключение:
AbsentInformationException — если для этого класса отсутствует информация о номерах строк. Также вызывается, если sourceName не равен null и информация об имени исходного кода отсутствует.
ClassNotPreparedException — если этот класс ещё не подготовлен.
Начиная с версии:
1.4

availableStrata

List<String> availableStrata()
Возвращает доступные страты для этого ссылочного типа.

Описание страт см. в Location.

Возвращает:
список объектов java.lang.String, каждый из которых представляет страту
Начиная с версии:
1.4

defaultStratum

String defaultStratum()
Возвращает страт по умолчанию для этого типа ссылок. Это значение указано в файле класса и не может быть задано пользователем. Если в файле класса не указан страт по умолчанию, будет возвращён базовый страт ("Java").

Описание страт см. в Location.

С версии:
1.4

instances

List<ObjectReference> instances(long maxInstances)
Возвращает экземпляры этого ReferenceType. Возвращаются только экземпляры, достижимые с точки зрения сборки мусора.

Не все целевые виртуальные машины поддерживают эту операцию. Используйте VirtualMachine.canGetInstanceInfo(), чтобы определить, поддерживается ли эта операция.

Параметры:
maxInstances — максимальное количество возвращаемых экземпляров. Значение должно быть неотрицательным. Если оно равно нулю, возвращаются все экземпляры.
Возвращает:
список объектов ObjectReference. Если экземпляров этого ReferenceType нет, возвращается список нулевой длины.
Выбрасывает:
UnsupportedOperationException — если целевая виртуальная машина не поддерживает эту операцию; см. canGetInstanceInfo()
IllegalArgumentException — если значение maxInstances меньше нуля.
С версии:
1.6
См. также:
  • VirtualMachine.instanceCounts(List)
  • ObjectReference.referringObjects(long)

equals

boolean equals(Object obj)
Сравнивает указанный объект с этим ReferenceType на равенство.
Переопределяет:
equals в классе Object
Параметры:
obj — объект-ссылка, с которым выполняется сравнение.
Возвращает:
true, если объект является ReferenceType, если ReferenceTypes принадлежат одной и той же виртуальной машине и если они представляют классы, соответствующие одному и тому же экземпляру java.lang.Class в этой виртуальной машине.
См. также:
  • Object.hashCode()
  • HashMap

hashCode

int hashCode()
Возвращает значение хеш-кода для этого ObjectReference.
Переопределяет:
hashCode в классе Object
Возвращает:
целочисленный хеш-код
См. также:
  • Object.equals(java.lang.Object)
  • System.identityHashCode(Object)

majorVersion

int majorVersion()
Возвращает номер старшей версии класса, определённый в формате файла класса спецификации виртуальной машины Java. Для массивов (ArrayType) и примитивных классов возвращаемое значение номера старшей версии равно нулю. Не все целевые виртуальные машины поддерживают эту операцию. Используйте VirtualMachine.canGetClassFileVersion(), чтобы определить, поддерживается ли эта операция.
Возвращает:
номер старшей версии класса.
Выбрасывает:
UnsupportedOperationException — если целевая виртуальная машина не поддерживает эту операцию; см. canGetClassFileVersion()
С версии:
1.6

minorVersion

int minorVersion()
Возвращает номер младшей версии класса, определённый в формате файла класса спецификации виртуальной машины Java. Для массивов (ArrayType) и примитивных классов возвращаемое значение номера младшей версии равно нулю. Не все целевые виртуальные машины поддерживают эту операцию. Используйте VirtualMachine.canGetClassFileVersion(), чтобы определить, поддерживается ли эта операция.
Возвращает:
номер младшей версии класса.
Выбрасывает:
UnsupportedOperationException — если целевая виртуальная машина не поддерживает эту операцию; см. canGetClassFileVersion()
С версии:
1.6

constantPoolCount

int constantPoolCount()
Возвращает количество записей в пуле констант плюс один. Это соответствует элементу constant_pool_count в формате файла класса спецификации виртуальной машины Java. Для массивов (ArrayType) и примитивных классов возвращаемое значение количества элементов пула констант равно нулю. Не все целевые виртуальные машины поддерживают эту операцию. Используйте VirtualMachine.canGetConstantPool(), чтобы определить, поддерживается ли эта операция.
Возвращает:
общее количество записей в пуле констант класса плюс один.
Выбрасывает:
UnsupportedOperationException — если целевая виртуальная машина не поддерживает эту операцию; см. canGetConstantPool()
С версии:
1.6
См. также:
  • constantPool()

constantPool

byte[] constantPool()
Возвращает необработанные байты пула констант в формате элемента constant_pool из формата файла класса спецификации виртуальной машины Java. Формат пула констант может различаться в разных версиях формата файла класса, поэтому для проверки совместимости следует проверить номера младшей и старшей версий класса. Для массивов (ArrayType) и примитивных классов возвращается байтовый массив нулевой длины. Не все целевые виртуальные машины поддерживают эту операцию. Используйте VirtualMachine.canGetConstantPool(), чтобы определить, поддерживается ли эта операция.
Возвращает:
необработанные байты пула констант.
Выбрасывает:
UnsupportedOperationException — если целевая виртуальная машина не поддерживает эту операцию; см. canGetConstantPool()
С версии:
1.6
См. также:
  • constantPoolCount()

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