Spec-Zone.ru › OpenJDK 27

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

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

toString, virtualMachine
Модификатор и тип Метод Описание
String toString()
Возвращает строку с описанием этого зеркала
VirtualMachine 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, если Object является 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, 2026, 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.

Spec-Zone.ru

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