Интерфейс Location
- Все суперинтерфейсы:
-
Comparable<Location>,Mirror
public interface Location extends Mirror, Comparable<Location>
Доступность номера строки для локации зависит от уровня отладочной информации, доступной от целевой виртуальной машины.
Несколько зеркальных интерфейсов имеют локации. Каждый такой интерфейс расширяет интерфейс Locatable.
Информация о коде для Location зависит от слоя, который используется. Слой — это уровень исходного кода в последовательности переводов. Например, скажем, программа baz написана на языке программирования "Foo", затем переведена на язык "Bar" и, наконец, переведена на язык программирования Java. Слой языка программирования Java называется "Java", скажем, другие слои называются "Foo" и "Bar". Данная локация (как она отображается методами sourceName() и lineNumber()) может быть на строке 14 файла "baz.foo" в слое "Foo" , на строке 23 файла "baz.bar" в слое "Bar" и на строке 71 файла "Java" слоя. Обратите внимание, что хотя язык программирования Java может иметь только один исходный файл для ссылочного типа, это ограничение не распространяется на другие слои — таким образом, для определения пути к исходному коду необходимо обращаться к каждой Location. Запросы, которые не указывают слой (sourceName(), sourcePath() и lineNumber()) используют значение по умолчанию виртуальной машины (VirtualMachine.getDefaultStratum()). Если указанный слой (явный параметр метода или неявный по умолчанию VM) равен null или недоступен в объявляемом типе, используется слой по умолчанию объявляемого типа (declaringType().defaultStratum()). Обратите внимание, что в обычном случае для кода, исходно написанного на языке программирования Java, будет только один слой ("Java") и он будет возвращён как значение по умолчанию. Для определения доступных слоёв используйте ReferenceType.availableStrata().
- С момента:
- 1.3
- См. также:
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
long |
codeIndex() |
Получение позиции кода в методе данной локации. |
ReferenceType |
declaringType() |
Получение типа, к которому принадлежит данная Location. |
boolean |
equals |
Сравнение указанного объекта с данной Location на равенство. |
int |
hashCode() |
Возвращает значение хэш-кода для данной Location. |
int |
lineNumber() |
Получение номера строки данной Location. |
int |
lineNumber |
Номер строки данной Location. |
Method |
method() |
Получение метода, содержащего данную Location. |
String |
sourceName() |
Получение идентифицирующего имени источника, соответствующего данной локации. |
String |
sourceName |
Получение идентифицирующего имени источника, соответствующего данной локации. |
String |
sourcePath() |
Получение пути к источнику, соответствующему данной локации. |
String |
sourcePath |
Получение пути к источнику, соответствующему данной локации. |
Методы, объявленные в интерфейсе java.lang.Comparable
compareTo
Методы, объявленные в интерфейсе com.sun.jdi.Mirror
toString, virtualMachine
Подробное описание методов
declaringType
ReferenceType declaringType()
ClassType, но исполняемые локации также могут существовать внутри статического инициализатора InterfaceType.- Возвращает:
- the
ReferenceTypeсодержащий эту Location.
method
Method method()
- Возвращает:
- the location's
Method.
codeIndex
long codeIndex()
- Возвращает:
- long, представляющий позицию внутри метода, или -1, если местоположение находится в нативном методе.
sourceName
String sourceName() throws AbsentInformationException
Этот метод эквивалентен sourceName(vm.getDefaultStratum()) - см. sourceName(String) для получения дополнительной информации.
- Возвращает:
- строку, определяющую источник
- Исключение:
-
AbsentInformationException- если имя источника неизвестно
sourceName
String sourceName(String stratum) throws AbsentInformationException
Возвращённое имя предназначено для указанного слоя (см. class comment для описания слоёв).
Возвращаемая строка — это неопределённое имя файла источника для этой Location. Например, java.lang.Thread вернёт "Thread.java".
- Параметры:
-
stratum- Слой для извлечения информации илиnullдля стандартного слоя декларируемого типа. - Возвращает:
- строку, определяющую источник
- Исключение:
-
AbsentInformationException- если имя источника неизвестно - С тех пор:
- 1.4
sourcePath
String sourcePath() throws AbsentInformationException
Этот метод эквивалентен sourcePath(vm.getDefaultStratum()) - см. sourcePath(String) для получения дополнительной информации.
- Возвращает:
- строку, определяющую источник
- Исключение:
-
AbsentInformationException- если имя источника неизвестно
sourcePath
String sourcePath(String stratum) throws AbsentInformationException
Возвращаемый путь предназначен для указанного слоя (см. class comment для описания слоёв).
В реализации по умолчанию, для слоёв, которые не явно указывают путь к источнику (слой Java никогда не делает этого), возвращаемая строка — это имя пакета declaringType(), преобразованное в платформенно-зависимый путь, за которым следует неопределённое имя файла источника для этой Location (sourceName(stratum)). Например, на платформе Windows, java.lang.Thread вернёт "java\lang\Thread.java".
- Параметры:
-
stratum- Слой для извлечения информации илиnullдля стандартного слоя декларируемого типа. - Возвращает:
- строку, определяющую источник
- Исключение:
-
AbsentInformationException- если имя источника неизвестно - С тех пор:
- 1.4
lineNumber
int lineNumber()
Этот метод эквивалентен lineNumber(vm.getDefaultStratum()) - см. lineNumber(String) для получения дополнительной информации.
- Возвращает:
- целое число, определяющее строку в исходном коде, возвращает -1, если информация недоступна; конкретно, всегда возвращает -1 для нативных методов.
lineNumber
int lineNumber(String stratum)
sourceName(stratum). Возвращаемый номер строки относится к указанному слою (см. class comment для описания слоёв).
- Параметры:
-
stratum- Слой для извлечения информации илиnullдля стандартного слоя декларируемого типа. - Возвращает:
- целое число, определяющее строку в исходном коде, возвращает -1, если информация недоступна; конкретно, всегда возвращает -1 для нативных методов.
- С тех пор:
- 1.4
equals
boolean equals(Object obj)
- Переопределяет:
-
equalsв классеObject - Параметры:
-
obj- объект-ссылка для сравнения. - Возвращает:
- true, если объект является Location и ссылается на ту же точку в той же VM, что и эта Location.
- См. также:
hashCode
int hashCode()
- Переопределяет:
-
hashCodeв классеObject - Возвращает:
- целое значение хэш-кода
- См. также:
© 1993, 2023, 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/21/docs/api/jdk.jdi/com/sun/jdi/Location.html