Spec-Zone.ru › OpenJDK 25

Интерфейс 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
См. также:
  • EventRequestManager
  • StackFrame
  • BreakpointEvent
  • ExceptionEvent
  • Locatable

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

Модификатор и тип Метод Описание
long codeIndex()
Возвращает позицию кода в методе данного местоположения.
ReferenceType declaringType()
Возвращает тип, которому принадлежит данное Location.
boolean equals(Object obj)
Сравнивает указанный объект с данным Location на равенство.
int hashCode()
Возвращает хеш-код данного Location.
int lineNumber()
Возвращает номер строки для данного Location.
int lineNumber(String stratum)
Номер строки данного Location.
Method method()
Возвращает метод, содержащий данное Location.
String sourceName()
Возвращает идентифицирующее имя исходного кода, соответствующего данному местоположению.
String sourceName(String stratum)
Возвращает идентифицирующее имя исходного кода, соответствующего данному местоположению.
String sourcePath()
Возвращает путь к исходному коду, соответствующему данному местоположению.
String sourcePath(String stratum)
Возвращает путь к исходному коду, соответствующему данному местоположению.

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

compareTo

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

toString, virtualMachine

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

declaringType

ReferenceType declaringType()
Возвращает тип, которому принадлежит данное Location. Обычно объявляющий тип является ClassType, однако исполняемые местоположения также могут находиться в статическом инициализаторе InterfaceType.
Возвращает:
ReferenceType, содержащий данное Location.

method

Method method()
Возвращает метод, содержащий данное 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()
Возвращает номер строки для данного Location.

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

Возвращает:
значение int, задающее строку в исходном коде; возвращает -1, если информация недоступна; в частности, всегда возвращает -1 для нативных методов.

lineNumber

int lineNumber(String stratum)
Номер строки данного Location. Номер строки относится к исходному коду, указанному методом sourceName(stratum).

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

Параметры:
stratum — страта, из которой следует получить информацию, или null для страты объявляющего типа по умолчанию.
Возвращает:
значение int, задающее строку в исходном коде; возвращает -1, если информация недоступна; в частности, всегда возвращает -1 для нативных методов.
Начиная с:
1.4

equals

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

hashCode

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

Сообщить об ошибке или предложить улучшение
Дополнительные сведения об API и документацию для разработчиков см. в разделе Документация Java SE, содержащем более подробные описания для разработчиков, концептуальные обзоры, определения терминов, обходные решения и примеры работающего кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или её дочерних компаний в США и других странах.
Авторское право © 1993, 2025, 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.
https://docs.oracle.com/en/java/javase/25/docs/api/jdk.jdi/com/sun/jdi/Location.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API