Интерфейс 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 | Модификатор и тип | Метод | Описание |
|---|---|---|
int |
compareTo |
Сравнивает этот объект с указанным объектом, определяя порядок. |
Методы, объявленные в интерфейсе Mirror
toString, virtualMachine | Модификатор и тип | Метод | Описание |
|---|---|---|
String |
toString() |
Возвращает строку с описанием этого зеркала |
VirtualMachine |
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.