Класс 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) Создает элемент стека вызовов, представляющий указанную точку выполнения. |
Методы
| Модификатор и тип | Метод и описание |
|---|---|
boolean |
equals(Object obj) Возвращает true, если указанный объект является другим экземпляром |
String |
getClassName() Возвращает полное имя класса, содержащего точку выполнения, представленную этим элементом стека вызовов. |
String |
getFileName() Возвращает имя файла исходного кода, содержащего точку выполнения, представленную этим элементом стека вызовов. |
int |
getLineNumber() Возвращает номер строки исходного кода, содержащей точку выполнения, представленную этим элементом стека вызовов. |
String |
getMethodName() Возвращает имя метода, содержащего точку выполнения, представленную этим элементом стека вызовов. |
int |
hashCode() Возвращает значение хэш-кода для этого элемента стека вызовов. |
boolean |
isNativeMethod() Возвращает true, если метод, содержащий точку выполнения, представленную этим элементом стека вызовов, является методом нативного кода. |
String |
toString() Возвращает строковое представление этого элемента стека вызовов. |
Методы, унаследованные от класса java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait Подробное описание конструкторов
StackTraceElement
public StackTraceElement(String declaringClass,
String methodName,
String fileName,
int lineNumber) Создает элемент стека вызовов, представляющий указанную точку выполнения.
- Параметры:
-
declaringClass- полное имя класса, содержащего точку выполнения, представленную элементом стека вызовов -
methodName- имя метода, содержащего точку выполнения, представленную элементом стека вызовов -
fileName- имя файла, содержащего точку выполнения, представленную элементом стека вызовов, илиnull, если эта информация недоступна -
lineNumber- номер строки исходного кода, содержащей точку выполнения, представленную этим элементом стека вызовов, или отрицательное число, если эта информация недоступна. Значение -2 указывает, что метод, содержащий точку выполнения, является методом нативного кода - Исключение:
-
NullPointerException- еслиdeclaringClassилиmethodNameравно null - С тех пор:
- 1.5
Подробное описание методов
getFileName
public String getFileName()
Возвращает имя файла исходного кода, содержащего точку выполнения, представленную этим элементом стека вызовов. Как правило, это соответствует атрибуту SourceFile соответствующего файла class (согласно Спецификации виртуальной машины Java, раздел 4.7.7). В некоторых системах имя может ссылаться на какой-либо элемент исходного кода, отличный от файла, например, запись в системе контроля версий.
- Возвращает:
- имя файла, содержащего точку выполнения, представленную этим элементом стека вызовов, или
null, если эта информация недоступна.
getLineNumber
public int getLineNumber()
Возвращает номер строки исходного кода, содержащей точку выполнения, представленную этим элементом стека вызовов. Как правило, это определяется по атрибуту LineNumberTable соответствующего файла class (согласно Спецификации виртуальной машины Java, раздел 4.7.8).
- Возвращает:
- номер строки исходного кода, содержащей точку выполнения, представленную этим элементом стека вызовов, или отрицательное число, если эта информация недоступна.
getClassName
public String getClassName()
Возвращает полное имя класса, содержащего точку выполнения, представленную этим элементом стека вызовов.
- Возвращает:
- полное имя класса, содержащего точку выполнения, представленную этим элементом стека вызовов.
getMethodName
public String getMethodName()
Возвращает имя метода, содержащего точку выполнения, представленную этим элементом стека вызовов. Если точка выполнения содержится в инициализаторе экземпляра или класса, этот метод вернёт соответствующее специальное имя метода, <init> или <clinit>, согласно разделу 3.9 Спецификации виртуальной машины Java.
- Возвращает:
- имя метода, содержащего точку выполнения, представленную этим элементом стека вызовов.
isNativeMethod
public boolean isNativeMethod()
Возвращает true, если метод, содержащий точку выполнения, представленную этим элементом стека вызовов, является методом нативного кода.
- Возвращает:
-
trueесли метод, содержащий точку выполнения, представленную этим элементом стека вызовов, является методом нативного кода.
toString
public String toString()
Возвращает строковое представление этого элемента стека вызовов. Формат этой строки зависит от реализации, но следующие примеры можно считать типичными:
-
"MyClass.mash(MyClass.java:9)"- Здесь,"MyClass"— полное имя класса, содержащего точку выполнения, представленную этим элементом стека вызовов,"mash"— имя метода, содержащего точку выполнения,"MyClass.java"— файл исходного кода, содержащий точку выполнения, а"9"— номер строки исходного кода, содержащей точку выполнения. -
"MyClass.mash(MyClass.java)"- Как выше, но номер строки недоступен. -
"MyClass.mash(Unknown Source)"- Как выше, но ни имя файла, ни номер строки недоступны. -
"MyClass.mash(Native Method)"- Как выше, но ни имя файла, ни номер строки недоступны, и метод, содержащий точку выполнения, известен как метод нативного кода.
- Переопределяет:
-
toStringв классеObject - Возвращает:
- строковое представление объекта.
- См. также:
Throwable.printStackTrace()
equals
public boolean equals(Object obj)
Возвращает true, если указанный объект является другим экземпляром StackTraceElement , представляющим ту же точку выполнения, что и этот экземпляр. Два элемента стека вызовов a и b равны тогда и только тогда, когда:
equals(a.getFileName(), b.getFileName()) &&
a.getLineNumber() == b.getLineNumber()) &&
equals(a.getClassName(), b.getClassName()) &&
equals(a.getMethodName(), b.getMethodName()) где equals имеет семантику Objects.equals. - Переопределяет:
-
equalsв классеObject - Параметры:
-
obj- объект для сравнения с этим элементом стека вызовов. - Возвращает:
- true, если указанный объект является другим экземпляром
StackTraceElement, представляющим ту же точку выполнения, что и этот экземпляр. - См. также:
-
Object.hashCode(),HashMap
hashCode
public int hashCode()
Возвращает значение хэш-кода для этого элемента стека вызовов.
- Переопределяет:
-
hashCodeв классеObject - Возвращает:
- значение хэш-кода для этого объекта.
- См. также:
-
Object.equals(java.lang.Object),System.identityHashCode(java.lang.Object)
© 1993, 2020, 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.