java.lang

接口
异常
错误
注释
java.lang.Object
  继承者 java.lang.StackTraceElement
所有已实现的接口:
Serializable

public final class StackTraceElement
     
extends Object
implements Serializable

堆栈跟踪中的元素,它由 Throwable.getStackTrace() 返回。每个元素表示单独的一个堆栈帧。所有的堆栈帧(堆栈顶部的那个堆栈帧除外)都表示一个方法调用。堆栈顶部的帧表示生成堆栈跟踪的执行点。通常,这是创建对应于堆栈跟踪的 throwable 的点。

从以下版本开始:
1.4
另请参见:
序列化表格

构造方法摘要
StackTraceElement(String declaringClass, String methodName, String fileName, int lineNumber)
          创建表示指定执行点的堆栈跟踪元素。
 
方法摘要
 boolean equals(Object obj)
          如果指定的对象是另一个 StackTraceElement 实例,并且该对象表示的执行点与该实例的相同,则返回 ture。
 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 - 如果 declaringClassmethodName 为 null
从以下版本开始:
1.5
方法详细信息

getFileName

public String getFileName()
返回源文件名,该文件包含由该堆栈跟踪元素所表示的执行点。通常,这对应于相关 class 文件的 SourceFile 属性(根据 The Java Virtual Machine Specification 中的第 4.7.7 小节)。在某些系统中,该名称可能指的是源代码单元而不是某个文件,如源存储库中的某个项。

返回:
文件名,该文件包含由该堆栈跟踪元素所表示的执行点;如果该信息不可用,则返回 null

getLineNumber

public int getLineNumber()
返回源行的行号,该行包含由该堆栈该跟踪元素所表示的执行点。通常,该方法派生自相关 class 文件的 LineNumberTable 属性(根据 The Java Virtual Machine Specification 中的第 4.7.8 小节)。

返回:
源代码行的行号,该代码行包含由该堆栈跟踪元素所表示的执行点;如果该信息不可用,则返回负数。

getClassName

public String getClassName()
返回类的完全限定名,该类包含由该堆栈跟踪元素所表示的执行点。

返回:
Class 的完全限定名,该类包含由该堆栈跟踪元素所表示的执行点。

getMethodName

public String getMethodName()
返回方法名,此方法包含由该堆栈跟踪元素所表示的执行点。如果执行点包含在某个实例或类初始化程序中,则此方法将返回适当的 特殊方法名<init><clinit>(根据 The Java Virtual Machine Specification 中的第 3.9 节)。

返回:
方法名,该方法包含由该堆栈跟踪元素所表示的执行点。

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)" - 同上,但是文件名和行号都不可用,并且已知包含执行点的方法是本机方法。

覆盖:
Object 中的 toString
返回:
该对象的字符串表示形式。
另请参见:
Throwable.printStackTrace()

equals

public boolean equals(Object obj)
如果指定的对象是另一个 StackTraceElement 实例,并且该对象表示的执行点与该实例的相同,则返回 ture。当且仅当满足下列条件时,堆栈跟踪元素 ab 相同:
     equals(a.getFileName(), b.getFileName()) &&
     a.getLineNumber() == b.getLineNumber()) &&
     equals(a.getClassName(), b.getClassName()) &&
     equals(a.getMethodName(), b.getMethodName())
 
其中定义 equals 为:
     static boolean equals(Object a, Object b) {
         return a==b || (a != null && a.equals(b));
     }
 

覆盖:
Object 中的 equals
参数:
obj - 要与该堆栈跟踪元素相比较的对象。
返回:
如果指定的对象是另一个 StackTraceElement 实例,并且该对象表示的执行点与该实例的相同,则返回 true。
另请参见:
Object.hashCode(), Hashtable

hashCode

public int hashCode()
返回此堆栈跟踪元素的哈希码值。

覆盖:
Object 中的 hashCode
返回:
此对象的一个哈希码值。
另请参见:
Object.equals(java.lang.Object), Hashtable