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.