public final class StackTraceElement extends Object implements Serializable
Throwable.getStackTrace()。每个元素都代表一个堆栈帧。除了堆栈顶部的一个堆栈帧的所有堆栈帧表示方法调用。栈顶的框架表示生成堆栈跟踪的执行点。通常,在这一点上,对应的堆栈跟踪的时间了。
| Constructor and Description |
|---|
StackTraceElement(String declaringClass, String methodName, String fileName, int lineNumber)
创建表示指定执行点的堆栈跟踪元素。
|
| Modifier and Type | Method and Description |
|---|---|
boolean |
equals(Object obj)
如果指定的对象是另一个
StackTraceElement实例表示相同的执行点为该实例返回true。
|
String |
getClassName()
返回包含此堆栈跟踪元素表示的执行点的类的完全限定名。
|
String |
getFileName()
返回包含此堆栈跟踪元素表示的执行点的源文件的名称。
|
int |
getLineNumber()
返回包含此堆栈跟踪元素表示的执行点的源行的行数。
|
String |
getMethodName()
返回包含此堆栈跟踪元素表示的执行点的方法的名称。
|
int |
hashCode()
返回此堆栈跟踪元素的哈希代码值。
|
boolean |
isNativeMethod()
如果包含此堆栈跟踪元素表示的执行点的方法是本地方法,则返回真。
|
String |
toString()
返回此堆栈跟踪元素的字符串表示形式。
|
public StackTraceElement(String declaringClass, String methodName, String fileName, int lineNumber)
declaringClass -含微量元素表示堆栈执行点的类的完全限定名
methodName -含微量元素表示堆栈执行点的方法的名称
fileName -含微量元素表示堆栈执行点的文件的名称,或
null如果此信息不可用
lineNumber -包含当前堆栈跟踪元素表示的执行点的源代码行号,或一个负数,如果这个信息是不可用。值为- 2表示包含执行点的方法是本机方法
NullPointerException -如果
declaringClass或
methodName是空的
public String getFileName()
class文件
SourceFile属性(每nulljava虚拟机规范,部分4.7.7)。在一些系统中,这个名称可以参考一些源代码单位,而不是一个文件,如源代码库中的条目。
null如果此信息不可用。
public int getLineNumber()
class文件
LineNumberTable属性(每nulljava虚拟机规范,部分4.7.8)。
public String getClassName()
类完全限定名称。
public String getMethodName()
<init>或
<clinit>,每节3.9 nulljava虚拟机规范。
public boolean isNativeMethod()
true如果包含当前堆栈跟踪元素表示的执行点的方法是一个本地方法。
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()
public boolean equals(Object obj)
StackTraceElement实例表示相同的执行点为该实例返回true。两组微量元素
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要同当前堆栈跟踪元素比较的对象。
StackTraceElement实例表示相同的执行点为该实例。
Object.hashCode(),
HashMap
public int hashCode()
hashCode 方法重写,继承类
Object
Object.equals(java.lang.Object),
System.identityHashCode(java.lang.Object)
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.