Интерфейс 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()). Если указанная страта (явно заданная параметром метода или неявно используемая как страта виртуальной машины по умолчанию) равна 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 |
Возвращает путь к исходному коду, соответствующему данному местоположению. |
Методы, объявленные в интерфейсе Comparable
compareTo
Методы, объявленные в интерфейсе Mirror
toString, virtualMachine
Подробное описание методов
declaringType
ReferenceType declaringType()
ClassType, однако исполняемые местоположения также могут находиться в статическом инициализаторе InterfaceType.- Возвращает:
ReferenceType, содержащий данное Location.
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).
- Возвращает:
- значение int, задающее строку в исходном коде; возвращает -1, если информация недоступна; в частности, всегда возвращает -1 для нативных методов.
lineNumber
int lineNumber(String stratum)
sourceName(stratum). Возвращаемый номер строки относится к указанной страте (описание страт см. в class comment).
- Параметры:
-
stratum— страта, из которой следует получить информацию, илиnullдля страты объявляющего типа по умолчанию. - Возвращает:
- значение int, задающее строку в исходном коде; возвращает -1, если информация недоступна; в частности, всегда возвращает -1 для нативных методов.
- Начиная с:
- 1.4
equals
boolean equals(Object obj)
hashCode
© 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/jdk.jdi/com/sun/jdi/Location.html