Spec-Zone .ru
спецификации, руководства, описания, API
|
public interface ReferenceType extends Type, Comparable<ReferenceType>, Accessible
ClassType
для классов, InterfaceType
для интерфейсов, и ArrayType
для массивов. Отметьте что примитивные классы (например, reflected type
из Integer.TYPE
) представляются как ClassType. VM создает объекты Класса для всех трех, таким образом, с точки зрения VM, каждый ReferenceType отображается на отличный объект Класса. ReferenceTypes может быть получен, запрашивая деталь ObjectReference
для его типа или получая список всех ссылочных типов от VirtualMachine
.
ReferenceType обеспечивает доступ к статической информации о типе, такой как методы и поля и обеспечивает доступ к динамической информации о типе, такой как соответствующий объект Класса и classloader.
Любой метод на ReferenceType
который прямо или косвенно берет ReferenceType
поскольку параметр может бросить VMDisconnectedException
если целевой VM разъединяется и VMDisconnectEvent
был или доступен, чтобы быть считанным из EventQueue
.
Любой метод на ReferenceType
который прямо или косвенно берет ReferenceType
поскольку параметр может бросить VMOutOfMemoryException
если целевой VM исчерпал память.
Любой метод на ReferenceType
или который прямо или косвенно берет ReferenceType
поскольку параметр может бросить ObjectCollectedException
если зеркально отраженный тип был разгружен.
ObjectReference
, ObjectReference.referenceType()
, VirtualMachine
, VirtualMachine.allClasses()
Модификатор и Тип | Метод и Описание |
---|---|
List<Field> |
allFields()
Возвращает список, содержащий каждого
Field объявленный в этом типе, и его суперклассах, реализованных интерфейсах, и/или суперинтерфейсах. |
List<Location> |
allLineLocations()
Возвращает список, содержащий a
Location объект для каждой исполнимой исходной строки в этом ссылочном типе. |
List<Location> |
allLineLocations(String stratum, String sourceName)
Возвращает список, содержащий a
Location объект для каждой исполнимой исходной строки в этом ссылочном типе. |
List<Method> |
allMethods()
Возвращает список, содержащий каждого
Method объявленный в этом типе, и его суперклассах, реализованных интерфейсах, и/или суперинтерфейсах. |
List<String> |
availableStrata()
Возвратите доступные слои для этого ссылочного типа.
|
ClassLoaderReference |
classLoader()
Получает объект classloader, который загрузил class, соответствующий этому типу.
|
ClassObjectReference |
classObject()
Возвращает объект class, который соответствует, это вводит целевой VM.
|
byte[] |
constantPool()
Возвращает необработанные байты постоянного пула в формате constant_pool элемента Формата файла Класса в Спецификации виртуальной машины Java.
|
int |
constantPoolCount()
Возвращает число записей в постоянном пуле плюс один.
|
Строка |
defaultStratum()
Возвращает слой значения по умолчанию для этого ссылочного типа.
|
boolean |
equals(Object obj)
Сравнивает указанный Объект с этим ReferenceType для равенства.
|
boolean |
failedToInitialize()
Определяет если инициализация, отказавшая для этого class.
|
Поле |
fieldByName(String fieldName)
Находит видимое
Field с данным ненеоднозначным именем. |
List<Field> |
fields()
Возвращает список, содержащий каждого
Field объявленный в этом типе. |
Строка |
genericSignature()
Получает универсальную подпись для этого типа, если есть тот.
|
Значение |
getValue(Field field)
|
Map<Field,Value> |
getValues(List<? extends Field> fields)
|
int |
hashCode()
Возвращает значение хэш-кода для этого ObjectReference.
|
List<ObjectReference> |
instances(long maxInstances)
Экземпляры возвратов этого ReferenceType.
|
boolean |
isAbstract()
Определяет, был ли этот тип объявлен кратким обзором.
|
boolean |
isFinal()
Определяет, был ли этот тип объявлен финалом.
|
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()
Возвращает номер основной версии class, как определено в формате файла class Спецификации виртуальной машины Java.
|
List<Method> |
methods()
Возвращает список, содержащий каждого
Method объявленный непосредственно в этом типе. |
List<Method> |
methodsByName(String name)
Возвращает Список, содержащий каждого видимого
Method у этого есть имя. |
List<Method> |
methodsByName(String name, String signature)
Возвращает Список, содержащий каждого видимого
Method у этого есть имя и подпись. |
int |
minorVersion()
Возвращает номер вспомогательной версии class, как определено в формате файла class Спецификации виртуальной машины Java.
|
Строка |
name()
Получает полностью определенное имя этого типа.
|
List<ReferenceType> |
nestedTypes()
Возвращает Список, содержащий
ReferenceType объекты, которые объявляются в пределах этого типа и в настоящий момент загружаются в Виртуальную машину. |
Строка |
sourceDebugExtension()
Получите исходное расширение отладки этого типа.
|
Строка |
sourceName()
Получает имя идентификации для источника, соответствующего объявлению этого типа.
|
List<String> |
sourceNames(String stratum)
Получает имена идентификации для всего источника, соответствующего объявлению этого типа.
|
List<String> |
sourcePaths(String stratum)
Получает пути к источнику, соответствующему объявлению этого типа.
|
List<Field> |
visibleFields()
Возвращает список, содержащий каждого нескрытого и однозначного
Field в этом типе. |
List<Method> |
visibleMethods()
Возвращает список, содержащий каждого
Method объявленный или наследованный этим типом. |
toString, virtualMachine
compareTo
isPackagePrivate, isPrivate, isProtected, isPublic, modifiers
String name()
Для примитивных классов возвращенное имя является именем соответствующего типа примитива; например, "интервал" возвращается как имя class, представленного Integer.TYPE
.
String genericSignature()
null
если нет никакой универсальной подписи.ClassLoaderReference classLoader()
ClassLoaderReference
который зеркально отражает classloader, или null
если class был загружен посредством начальной загрузки загрузчик class.String sourceName() throws AbsentInformationException
Возвращенное имя зависит от слоя значения по умолчанию VM (VirtualMachine.getDefaultStratum()
). В ссылочной реализации, при использовании основного слоя, возвращенная строка является неполным именем исходного файла, содержащего объявление этого типа. В других слоях возвращенное исходное имя является первым исходным именем для того слоя. Так как у других языков может быть больше чем одно исходное имя для ссылочного типа, использования Location.sourceName()
или sourceNames(String)
предпочитается.
Для массивов (ArrayType
) и примитивные классы, AbsentInformationException всегда бросается.
AbsentInformationException
- если исходное имя не известноList<String> sourceNames(String stratum) throws AbsentInformationException
Возвращенные имена для указанного слоя (см. Location
для описания слоев). В ссылочной реализации, при использовании слоя языка программирования Java, возвращенный Список содержит один элемент: Строка, которая является неполным именем исходного файла, содержащего объявление этого типа. В других слоях возвращенные исходные имена являются всеми исходными именами, определенными для того слоя.
stratum
- Слой, чтобы получить информацию от или null
для слоя значения по умолчанию типа объявления.AbsentInformationException
- если исходные имена не известны. Для массивов (ArrayType
) и примитивные классы, AbsentInformationException всегда бросается.
List<String> sourcePaths(String stratum) throws AbsentInformationException
Возвращенные пути для указанного слоя (см. Location
для описания слоев). В ссылочной реализации, для слоев, которые явно не определяют исходный путь (слой языка программирования Java никогда не делает), возвращенные строки sourceNames(String)
снабженный префиксом именем пакета этого ReferenceType преобразовал в платформу зависимый путь. Например, на платформе Windows, java.lang.Thread
возвратил бы Список, содержащий один элемент: "java\lang\Thread.java"
.
stratum
- Слой, чтобы получить информацию от или null
для слоя значения по умолчанию типа объявления.AbsentInformationException
- если исходные имена не известны. Для массивов (ArrayType
) и примитивные классы, AbsentInformationException всегда бросается.
String sourceDebugExtension() throws AbsentInformationException
Не все целевые виртуальные машины поддерживают эту работу. Использовать canGetSourceDebugExtension()
определить, поддерживается ли работа.
AbsentInformationException
- если расширение не определяетсяUnsupportedOperationException
- если целевая виртуальная машина не поддерживает эту работу - см. canGetSourceDebugExtension()
,boolean isStatic()
false
возвращается для любого типа на уровне пакета, типа массива, или примитивного class.true
если этот тип статичен; ложь иначе.boolean isAbstract()
Для массивов (ArrayType
) и примитивные классы, возвращаемое значение неопределено.
true
если этот тип абстрактен; ложь иначе.boolean isFinal()
Для массивов (ArrayType
) и примитивные классы, возвращаемое значение всегда является истиной.
true
если этот тип является заключительным; ложь иначе.boolean isPrepared()
Для массивов (ArrayType
) и примитивные классы, возвращаемое значение неопределено.
true
если этот тип готовится; ложь иначе.boolean isVerified()
Для массивов (ArrayType
) и примитивные классы, возвращаемое значение неопределено.
true
если этот тип проверяется; ложь иначе.boolean isInitialized()
InterfaceType
, этот метод всегда возвращает то же самое значение как isPrepared()
. Для массивов (ArrayType
) и примитивные классы, возвращаемое значение неопределено.
true
если этот тип инициализируется; ложь иначе.boolean failedToInitialize()
Для массивов (ArrayType
) и примитивные классы, возвращаемое значение неопределено.
true
если инициализация была предпринята и отказавшей; ложь иначе.List<Field> fields()
Field
объявленный в этом типе. Наследованные поля не включаются. Любые синтетические поля, создаваемые компилятором, включаются в список. Для массивов (ArrayType
) и примитивные классы, возвращенный список всегда пуст.
Field
объекты; у списка есть длина 0, если никакие поля не существуют.ClassNotPreparedException
- если этот class, еще подготовленный.List<Field> visibleFields()
Field
в этом типе. Каждое поле, к которому можно получить доступ от class или его экземпляров с его простым именем, включается. Поля, которые являются двусмысленно, умножаются наследованный или поля, которые скрываются полями с тем же самым именем в позже наследованном class, не может быть получен доступ их простыми именами и не включаются в возвращенный список. Включаются все другие наследованные поля. См. раздел JLS 8.3 для деталей. Для массивов (ArrayType
) и примитивные классы, возвращенный список всегда пуст.
Field
объекты; у списка есть длина 0, если никакие видимые поля не существуют.ClassNotPreparedException
- если этот class, еще подготовленный.List<Field> allFields()
Field
объявленный в этом типе, и его суперклассах, реализованных интерфейсах, и/или суперинтерфейсах. Все объявленные и наследованные поля включаются, независимо от того, скрываются ли они или умножаются наследованный. Для массивов (ArrayType
) и примитивные классы, возвращенный список всегда пуст.
Field
объекты; у списка есть длина 0, если никакие поля не существуют.ClassNotPreparedException
- если этот class, еще подготовленный.Field fieldByName(String fieldName)
Field
с данным ненеоднозначным именем. Этот метод следует за правилами наследования, определенными в JLS (8.3.3), чтобы определить видимость. Для массивов (ArrayType
) и примитивные классы, возвращенное значение всегда является нулем.
fieldName
- Строка, содержащая имя требуемого поля.Field
объект, который зеркально отражает найденное поле, или нуль, если нет никакого поля с именем или если имя неоднозначно.ClassNotPreparedException
- если этот class, еще подготовленный.List<Method> methods()
Method
объявленный непосредственно в этом типе. Наследованные методы не включаются. Конструкторы, метод инициализации если таковые вообще имеются, и любые синтетические методы, создаваемые компилятором, включаются в список. Для массивов (ArrayType
) и примитивные классы, возвращенный список всегда пуст.
Method
объекты; у списка есть длина 0, если никакие методы не существуют.ClassNotPreparedException
- если этот class, еще подготовленный.List<Method> visibleMethods()
Method
объявленный или наследованный этим типом. Методы от суперклассов или суперинтерфейсов, которые, которые были скрыты или переопределены, не включаются. Отметьте, что несмотря на это исключение, многократные наследованные методы с той же самой подписью могут присутствовать в возвращенном списке, но самое большее можно быть элементом a ClassType
. См. раздел JLS 8.4.6 для деталей.
Для массивов (ArrayType
) и примитивные классы, возвращенный список всегда пуст.
Method
объекты; у списка есть длина 0, если никакие видимые методы не существуют.ClassNotPreparedException
- если этот class, еще подготовленный.List<Method> allMethods()
Method
объявленный в этом типе, и его суперклассах, реализованных интерфейсах, и/или суперинтерфейсах. Все объявленные и наследованные методы включаются, независимо от того, скрываются ли они или переопределяются. Для массивов (ArrayType
) и примитивные классы, возвращенный список всегда пуст.
Method
объекты; у списка есть длина 0, если никакие методы не существуют.ClassNotPreparedException
- если этот class, еще подготовленный.List<Method> methodsByName(String name)
Method
у этого есть имя. Это обычно используется, чтобы найти перегруженные методы. Переопределенные и скрытые методы не включаются. См. JLS (8.4.6) для деталей.
Для массивов (ArrayType
) и примитивные классы, возвращенный список всегда пуст.
name
- имя метода, чтобы найти.Method
объекты, которые соответствуют имя; у списка есть длина 0, если никакие методы соответствия не находятся.ClassNotPreparedException
- если этот class, еще подготовленный.List<Method> methodsByName(String name, String signature)
Method
у этого есть имя и подпись. Строка подписи является подписью JNI для целевого метода: ()V
([Ljava/lang/String;)V
(IIII)Z
Самое большее один метод в списке является конкретным методом и компонентом ClassType
; любые другие методы в списке абстрактны. Использовать ClassType.concreteMethodByName(java.lang.String, java.lang.String)
получать только соответствующий конкретный метод.
Для массивов (ArrayType
) и примитивные классы, возвращенный список всегда пуст.
name
- имя метода, чтобы найти.signature
- подпись метода, чтобы найтиMethod
объекты, которые соответствуют имя и подпись; у списка есть длина 0, если никакие методы соответствия не находятся.ClassNotPreparedException
- если этот class, еще подготовленный.List<ReferenceType> nestedTypes()
ReferenceType
объекты, которые объявляются в пределах этого типа и в настоящий момент загружаются в Виртуальную машину. Включаются и статические вложенные типы и нестатические вложенные типы (то есть, внутренние типы). Локальные внутренние типы (объявленный в пределах блока кода где-нибудь в этом ссылочном типе) также включаются в возвращенный список. Для массивов (ArrayType
) и примитивные классы, возвращенный список всегда пуст.
ReferenceType
объекты; у списка есть 0 длин, если нет никаких вложенных типов.Value getValue(Field field)
Value
из данных помех Field
в этом типе. Поле должно быть допустимым для этого типа; то есть, это должно быть объявлено в этом типе, суперклассе, суперинтерфейсе, или реализованном интерфейсе.field
- поле, содержащее требуемое значениеValue
из поля экземпляра.IllegalArgumentException
- если поле не допустимо для class этого объекта.Map<Field,Value> getValues(List<? extends Field> fields)
Value
из каждых помех Field
в данном списке. Поля должны быть допустимыми для этого типа; то есть, они должны быть объявлены в этом типе, суперклассе, суперинтерфейсе, или реализованном интерфейсе.fields
- список Field
объекты, содержащие требуемые значения.Field
объекты с их Value
.IllegalArgumentException
- если какое-либо поле не допустимо для class этого объекта.VMMismatchException
- если a Mirror
параметр и это зеркало не принадлежат тому же самому VirtualMachine
.ClassObjectReference classObject()
ClassObjectReference
для этого ссылочного типа в целевом VM.List<Location> allLineLocations() throws AbsentInformationException
Location
объект для каждой исполнимой исходной строки в этом ссылочном типе. Этот метод эквивалентен allLineLocations(vm.getDefaultStratum(),null)
- см. allLineLocations(String,String)
для получения дополнительной информации.
AbsentInformationException
- если нет никакой информации о номере строки для этого class и есть несобственные, неабстрактные исполнимые элементы этого class.ClassNotPreparedException
- если этот class, еще подготовленный.List<Location> allLineLocations(String stratum, String sourceName) throws AbsentInformationException
Location
объект для каждой исполнимой исходной строки в этом ссылочном типе. Каждое расположение отображает исходную строку на диапазон индексов кода. Начало диапазона может быть определено через Location.codeIndex()
. Возвращенный список может содержать многократные расположения для определенного номера строки, если компилятор и/или VM отобразили ту строку на два или больше непересекающихся диапазона индекса кода. Отметьте, что для той же самой исходной строки возможно представить различные диапазоны индекса кода в различных методах. Для массивов (ArrayType
) и примитивные классы, возвращенный список всегда пуст. Для интерфейсов (InterfaceType
), возвращенный список будет непуст, только если у интерфейса есть исполняемый код в его инициализации class.
Возвращенный список для указанного слоя (см. Location
для описания слоев).
stratum
- Слой, чтобы получить информацию от или null
для defaultStratum()
.sourceName
- Возвратите расположения только в пределах этого исходного файла или null
возвратить расположения.Location
объекты.AbsentInformationException
- если нет никакой информации о номере строки для этого class и есть несобственные, неабстрактные исполнимые элементы этого class. Или если sourceName не -null
и исходная информация об имени не присутствует.ClassNotPreparedException
- если этот class, еще подготовленный.List<Location> locationsOfLine(int lineNumber) throws AbsentInformationException
Location
объекты, которые отображаются на данный номер строки. Этот метод эквивалентен locationsOfLine(vm.getDefaultStratum(), null, lineNumber)
- см. locationsOfLine(java.lang.String,java.lang.String,int)
для получения дополнительной информации.
lineNumber
- номер строкиLocation
объекты, которые отображаются на данную строку.AbsentInformationException
- если нет никакой информации о номере строки для этого class.ClassNotPreparedException
- если этот class, еще подготовленный.VirtualMachine.getDefaultStratum()
List<Location> locationsOfLine(String stratum, String sourceName, int lineNumber) throws AbsentInformationException
Location
объекты, которые отображаются на данный номер строки. Для массивов (ArrayType
) и примитивные классы, возвращенный список всегда пуст. Для интерфейсов (InterfaceType
), возвращенный список будет непуст, только если у интерфейса есть исполняемый код в его инициализации class в указанном номере строки. Пустой список будет возвращен, если не будет никакого исполняемого кода в указанном номере строки.
Возвращенный список для указанного слоя (см. Location
для описания слоев).
stratum
- слой, чтобы использовать для того, чтобы сравнить номер строки и исходное имя, или null
использовать defaultStratum()
.sourceName
- исходное имя, содержащее номер строки, или null
соответствовать все исходные именаlineNumber
- номер строкиLocation
объекты, которые отображаются на данную строку.AbsentInformationException
- если нет никакой информации о номере строки для этого class. Или если sourceName не -null
и исходная информация об имени не присутствует.ClassNotPreparedException
- если этот class, еще подготовленный.List<String> availableStrata()
См. Location
для описания слоев.
java.lang.String
, каждое представление слояString defaultStratum()
"Java"
) будет возвращен. См. Location
для описания слоев.
List<ObjectReference> instances(long maxInstances)
Не все целевые виртуальные машины поддерживают эту работу. Использовать VirtualMachine.canGetInstanceInfo()
определить, поддерживается ли работа.
maxInstances
- максимальное количество экземпляров, чтобы возвратиться. Должно быть неотрицательным. Если нуль, все экземпляры возвращаются.ObjectReference
объекты. Если нет никаких экземпляров этого ReferenceType, список нулевой длиной возвращается.UnsupportedOperationException
- если целевая виртуальная машина не поддерживает эту работу - см. canGetInstanceInfo()
IllegalArgumentException
- если maxInstances является меньше чем нуль.VirtualMachine.instanceCounts(List)
, ObjectReference.referringObjects(long)
boolean equals(Object obj)
equals
в class Object
obj
- ссылочный объект, с которым можно сравниться.ReferenceType
, если ReferenceTypes принадлежат тому же самому VM, и если они зеркально отражают классы, которые соответствуют тому же самому экземпляру java.lang. Класс в этом VM.Object.hashCode()
, HashMap
int hashCode()
hashCode
в class Object
Object.equals(java.lang.Object)
, System.identityHashCode(java.lang.Object)
int majorVersion()
ArrayType
) и примитивные классы, возвращенное значение номера основной версии является нулем. Не все целевые виртуальные машины поддерживают эту работу. Использовать VirtualMachine.canGetClassFileVersion()
определить, поддерживается ли работа.UnsupportedOperationException
- если целевая виртуальная машина не поддерживает эту работу - см. canGetClassFileVersion()
int minorVersion()
ArrayType
) и примитивные классы, возвращенное значение номера вспомогательной версии является нулем. Не все целевые виртуальные машины поддерживают эту работу. Использовать VirtualMachine.canGetClassFileVersion()
определить, поддерживается ли работа.UnsupportedOperationException
- если целевая виртуальная машина не поддерживает эту работу - см. canGetClassFileVersion()
int constantPoolCount()
ArrayType
) и примитивные классы, возвращенное постоянное значение количества пула является нулем. Не все целевые виртуальные машины поддерживают эту работу. Использовать VirtualMachine.canGetConstantPool()
определить, поддерживается ли работа.UnsupportedOperationException
- если целевая виртуальная машина не поддерживает эту работу - см. canGetConstantPool()
constantPool()
byte[] constantPool()
ArrayType
) и примитивные классы, нулевой байтовый массив длины возвращается. Не все целевые виртуальные машины поддерживают эту работу. Использовать VirtualMachine.canGetConstantPool()
определить, поддерживается ли работа.UnsupportedOperationException
- если целевая виртуальная машина не поддерживает эту работу - см. canGetConstantPool()
constantPoolCount()
Авторское право © 1999, 2013, Oracle и/или его филиалы. Все права защищены.
ЧЕРНОВАЯ земля-b92