Spec-Zone.ru › OpenJDK 27

Класс StackTraceElement

java.lang.Object
java.lang.StackTraceElement
Все реализуемые интерфейсы:
Serializable
public final class StackTraceElement extends Object implements Serializable
Элемент трассировки стека, возвращаемый методом Throwable.getStackTrace(). Каждый элемент представляет один кадр стека. Все кадры стека, кроме самого верхнего, представляют вызов метода. Верхний кадр стека представляет точку выполнения, в которой была создана трассировка стека. Обычно это точка, в которой было создано исключение, соответствующее трассировке стека.
Начиная с:
1.4
См. также:
  • Сериализованное представление

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

Конструктор Описание
StackTraceElement(String declaringClass, String methodName, String fileName, int lineNumber)
Создает элемент трассировки стека, представляющий указанную точку выполнения.
StackTraceElement(String classLoaderName, String moduleName, String moduleVersion, String declaringClass, String methodName, String fileName, int lineNumber)
Создает элемент трассировки стека, представляющий указанную точку выполнения.

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

Модификатор и тип Метод Описание
boolean equals(Object obj)
Возвращает true, если указанный объект является другим экземпляром StackTraceElement, представляющим ту же точку выполнения, что и этот экземпляр.
String getClassLoaderName()
Возвращает имя загрузчика классов класса, содержащего точку выполнения, представленную этим элементом трассировки стека.
String getClassName()
Возвращает бинарное имя Class, содержащего точку выполнения, представленную этим элементом трассировки стека.
String getFileName()
Возвращает имя исходного файла, содержащего точку выполнения, представленную этим элементом трассировки стека.
int getLineNumber()
Возвращает номер строки исходного кода, содержащей точку выполнения, представленную этим элементом трассировки стека.
String getMethodName()
Возвращает имя метода, содержащего точку выполнения, представленную этим элементом трассировки стека.
String getModuleName()
Возвращает имя модуля, содержащего точку выполнения, представленную этим элементом трассировки стека.
String getModuleVersion()
Возвращает версию модуля, содержащего точку выполнения, представленную этим элементом трассировки стека.
int hashCode()
Возвращает хеш-код этого элемента трассировки стека.
boolean isNativeMethod()
Возвращает true, если метод, содержащий точку выполнения, представленную этим элементом трассировки стека, является нативным.
String toString()
Возвращает строковое представление этого элемента трассировки стека.

Методы, объявленные в классе Object

clone, finalize, getClass, notify, notifyAll, wait, wait, wait
Модификатор и тип Метод Описание
protected Object clone()
Создает и возвращает копию этого объекта.
protected void finalize()
Устарело, планируется удаление: этот элемент API может быть удален в будущей версии.
Финализация объявлена устаревшей и может быть удалена в одном из следующих выпусков.
final Class<?> getClass()
Возвращает класс времени выполнения этого Object.
final void notify()
Пробуждает один поток, ожидающий на мониторе этого объекта.
final void notifyAll()
Пробуждает все потоки, ожидающие на мониторе этого объекта.
final void wait()
Заставляет текущий поток ожидать пробуждения, обычно вследствие уведомления или прерывания.
final void wait(long timeoutMillis)
Заставляет текущий поток ожидать пробуждения, обычно вследствие уведомления или прерывания, либо до истечения заданного промежутка реального времени.
final void wait(long timeoutMillis, int nanos)
Заставляет текущий поток ожидать пробуждения, обычно вследствие уведомления или прерывания, либо до истечения заданного промежутка реального времени.

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

StackTraceElement

public StackTraceElement(String declaringClass, String methodName, String fileName, int lineNumber)
Создает элемент трассировки стека, представляющий указанную точку выполнения. Значения module name и module version элемента трассировки стека будут равны null.
Параметры:
declaringClass — бинарное имя класса, содержащего точку выполнения, представленную элементом трассировки стека
methodName — имя метода, содержащего точку выполнения, представленную элементом трассировки стека
fileName — имя файла, содержащего точку выполнения, представленную элементом трассировки стека, или null, если эта информация недоступна
lineNumber — номер строки исходного кода, содержащей точку выполнения, представленную этим элементом трассировки стека, или отрицательное число, если эта информация недоступна. Значение -2 указывает, что метод, содержащий точку выполнения, является нативным
Выбрасывает:
NullPointerException — если declaringClass или methodName равно null
Начиная с:
1.5

StackTraceElement

public StackTraceElement(String classLoaderName, String moduleName, String moduleVersion, String declaringClass, String methodName, String fileName, int lineNumber)
Создает элемент трассировки стека, представляющий указанную точку выполнения.
Параметры:
classLoaderName — имя загрузчика классов, если загрузчик класса, содержащего точку выполнения, представленную трассировкой стека, имеет имя; в противном случае null
moduleName — имя модуля, если класс, содержащий точку выполнения, представленную трассировкой стека, находится в именованном модуле; в противном случае null
moduleVersion — версия модуля, если класс, содержащий точку выполнения, представленную трассировкой стека, находится в именованном модуле с версией; в противном случае null
declaringClass — бинарное имя класса, содержащего точку выполнения, представленную элементом трассировки стека
methodName — имя метода, содержащего точку выполнения, представленную элементом трассировки стека
fileName — имя файла, содержащего точку выполнения, представленную элементом трассировки стека, или null, если эта информация недоступна
lineNumber — номер строки исходного кода, содержащей точку выполнения, представленную этим элементом трассировки стека, или отрицательное число, если эта информация недоступна. Значение -2 указывает, что метод, содержащий точку выполнения, является нативным
Выбрасывает:
NullPointerException — если declaringClass равно null или methodName равно null
Начиная с:
9

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

getFileName

public String getFileName()
Возвращает имя исходного файла, содержащего точку выполнения, представленную этим элементом трассировки стека. Как правило, оно соответствует атрибуту SourceFile соответствующего файла class (согласно Спецификации виртуальной машины Java, разделу §4.7.7). В некоторых системах имя может указывать на единицу исходного кода, отличную от файла, например на запись в репозитории исходного кода.
Возвращает:
имя файла, содержащего точку выполнения, представленную этим элементом трассировки стека, или null, если эта информация недоступна.

getLineNumber

public int getLineNumber()
Возвращает номер строки исходного кода, содержащей точку выполнения, представленную этим элементом трассировки стека. Как правило, он определяется по атрибуту LineNumberTable соответствующего файла class (согласно Спецификации виртуальной машины Java, разделу §4.7.8).
Возвращает:
номер строки исходного кода, содержащей точку выполнения, представленную этим элементом трассировки стека, или отрицательное число, если эта информация недоступна.

getModuleName

public String getModuleName()
Возвращает имя модуля, содержащего точку выполнения, представленную этим элементом трассировки стека.
Возвращает:
имя модуля Module, содержащего точку выполнения, представленную этим элементом трассировки стека; null, если имя модуля недоступно.
Начиная с:
9
См. также:
  • Module.getName()

getModuleVersion

public String getModuleVersion()
Возвращает версию модуля, содержащего точку выполнения, представленную этим элементом трассировки стека.
Возвращает:
версию модуля Module, содержащего точку выполнения, представленную этим элементом трассировки стека; null, если версия модуля недоступна.
Начиная с:
9
См. также:
  • ModuleDescriptor.Version

getClassLoaderName

public String getClassLoaderName()
Возвращает имя загрузчика классов класса, содержащего точку выполнения, представленную этим элементом трассировки стека.
Возвращает:
имя загрузчика классов класса, содержащего точку выполнения, представленную этим элементом трассировки стека; null, если загрузчик классов не имеет имени.
Начиная с:
9
См. также:
  • ClassLoader.getName()

getClassName

public String getClassName()
Возвращает бинарное имя Class, содержащего точку выполнения, представленную этим элементом трассировки стека.
Возвращает:
бинарное имя Class, содержащего точку выполнения, представленную этим элементом трассировки стека

getMethodName

public String getMethodName()
Возвращает имя метода, содержащего точку выполнения, представленную этим элементом трассировки стека. Если точка выполнения находится в инициализаторе экземпляра или класса, этот метод вернет соответствующее специальное имя метода — "<init>" или "<clinit>" — согласно разделу §3.9 Спецификации виртуальной машины Java.
Возвращает:
имя метода, содержащего точку выполнения, представленную этим элементом трассировки стека.

isNativeMethod

public boolean isNativeMethod()
Возвращает true, если метод, содержащий точку выполнения, представленную этим элементом трассировки стека, является нативным.
Возвращает:
true, если метод, содержащий точку выполнения, представленную этим элементом трассировки стека, является нативным.

toString

public String toString()
Возвращает строковое представление этого элемента трассировки стека.
Переопределяет:
toString в классе Object
Примечание к API:
Формат этой строки зависит от реализации, однако следующие примеры можно считать типичными:
  • "com.foo.loader/foo@9.0/com.foo.Main.run(Main.java:101)" — см. описание ниже.
  • "com.foo.loader/foo@9.0/com.foo.Main.run(Main.java)" — номер строки недоступен.
  • "com.foo.loader/foo@9.0/com.foo.Main.run(Unknown Source)" — недоступны ни имя файла, ни номер строки.
  • "com.foo.loader/foo@9.0/com.foo.Main.run(Native Method)" — метод, содержащий точку выполнения, является нативным.
  • "com.foo.loader//com.foo.bar.App.run(App.java:12)" — класс точки выполнения определен в безымянном модуле загрузчика классов с именем com.foo.loader.
  • "acme@2.1/org.acme.Lib.test(Lib.java:80)" — класс точки выполнения определен в модуле acme, загруженном встроенным загрузчиком классов, например загрузчиком классов приложений.
  • "MyClass.mash(MyClass.java:9)" — класс MyClass находится в пути классов приложения.

В первом примере показан элемент трассировки стека из трех компонентов, разделенных "/", за которыми следуют имя исходного файла и номер строки исходного кода, содержащей точку выполнения. Первый компонент «com.foo.loader» — имя загрузчика классов. Второй компонент «foo@9.0» — имя и версия модуля. Третий компонент — метод, содержащий точку выполнения; «com.foo.Main"» — бинарное имя, а «run» — имя метода. «Main.java» — имя исходного файла, а «101» — номер строки.

Если класс определен в безымянном модуле, второй компонент опускается, как показано в примере «com.foo.loader//com.foo.bar.App.run(App.java:12)».

Если загрузчик классов является встроенным загрузчиком классов или не имеет имени, первый компонент и следующий за ним "/" опускаются, как показано в примере «acme@2.1/org.acme.Lib.test(Lib.java:80)». Если первый компонент опущен, а модуль является безымянным, второй компонент и следующий за ним "/" также опускаются, как показано в примере «MyClass.mash(MyClass.java:9)».

Метод toString может возвращать разные значения для двух экземпляров StackTraceElement, которые равны, например для одного, созданного с помощью конструктора, и другого, полученного из Throwable или StackWalker.StackFrame: реализация может опустить некоторые компоненты в возвращаемой строке.

Возвращает:
строковое представление объекта
См. также:
  • Throwable.printStackTrace()

equals

public boolean equals(Object obj)
Возвращает true, если указанный объект является другим экземпляром StackTraceElement, представляющим ту же точку выполнения, что и этот экземпляр. Два элемента трассировки стека a и b равны тогда и только тогда, когда:
    equals(a.getClassLoaderName(), b.getClassLoaderName()) &&
    equals(a.getModuleName(), b.getModuleName()) &&
    equals(a.getModuleVersion(), b.getModuleVersion()) &&
    equals(a.getClassName(), b.getClassName()) &&
    equals(a.getMethodName(), b.getMethodName())
    equals(a.getFileName(), b.getFileName()) &&
    a.getLineNumber() == b.getLineNumber()

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

hashCode

public int hashCode()
Возвращает хеш-код этого элемента трассировки стека.
Переопределяет:
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