鴻蒙OS StackTraceElement

2022-05-20 15:48 更新

StackTraceElement

java.lang.Object

|---java.lang.StackTraceElement

public final class StackTraceElement
extends Object
implements Serializable

堆棧跟蹤中的一個元素,由 Throwable#getStackTrace() 返回。 每個元素代表一個堆棧幀。 除了棧頂?shù)臈?,所有棧幀都代表一個方法調(diào)用。 堆棧頂部的幀表示生成堆棧跟蹤的執(zhí)行點。 通常,這是創(chuàng)建對應于堆棧跟蹤的 throwable 的點。

構(gòu)造函數(shù)摘要

構(gòu)造函數(shù) 描述
StackTraceElement(String declaringClass, String methodName, String fileName, int lineNumber) 創(chuàng)建表示指定執(zhí)行點的堆棧跟蹤元素。

方法總結(jié)

修飾符和類型 方法 描述
boolean equals(Object obj) 如果指定對象是另一個 StackTraceElement 實例,表示與此實例相同的執(zhí)行點,則返回 true。
String getClassName() 返回包含此堆棧跟蹤元素表示的執(zhí)行點的類的完全限定名稱。
String getFileName() 返回包含此堆棧跟蹤元素表示的執(zhí)行點的源文件的名稱。
int getLineNumber() 返回包含此堆棧跟蹤元素表示的執(zhí)行點的源行的行號。
String getMethodName() 返回包含此堆棧跟蹤元素表示的執(zhí)行點的方法的名稱。
int hashCode() 返回此堆棧跟蹤元素的哈希碼值。
boolean isNativeMethod() 如果包含此堆棧跟蹤元素表示的執(zhí)行點的方法是本機方法,則返回 true。
String toString() 返回此堆棧跟蹤元素的字符串表示形式。
從類 java.lang.Object 繼承的方法
clone, finalize, getClass, notify, notifyAll, wait, wait, wait

構(gòu)造函數(shù)詳細信息

StackTraceElement

public StackTraceElement(String declaringClass, String methodName, String fileName, int lineNumber)

創(chuàng)建表示指定執(zhí)行點的堆棧跟蹤元素。

參數(shù):

參數(shù)名稱 參數(shù)描述
declaringClass 包含堆棧跟蹤元素表示的執(zhí)行點的類的完全限定名稱
methodName 包含由堆棧跟蹤元素表示的執(zhí)行點的方法的名稱
fileName 包含堆棧跟蹤元素表示的執(zhí)行點的文件的名稱,如果此信息不可用,則返回 null
lineNumber 包含此堆棧跟蹤元素表示的執(zhí)行點的源行的行號,如果此信息不可用,則為負數(shù)。 值為 -2 表示包含執(zhí)行點的方法是本機方法

Throws:

Throw名稱 Throw描述
NullPointerException 如果 declaringClass 或 methodName 為 null

方法詳情

getFileName

public String getFileName()

返回包含此堆棧跟蹤元素表示的執(zhí)行點的源文件的名稱。 通常,這對應于相關類文件的 SourceFile 屬性(根據(jù) Java 虛擬機規(guī)范,第 4.7.7 節(jié))。 在某些系統(tǒng)中,名稱可能指代文件以外的某些源代碼單元,例如源存儲庫中的條目。

返回:

包含此堆棧跟蹤元素表示的執(zhí)行點的文件的名稱,如果此信息不可用,則為 null。

getLineNumber

public int getLineNumber()

返回包含此堆棧跟蹤元素表示的執(zhí)行點的源行的行號。 通常,這是從相關類文件的 LineNumberTable 屬性派生的(根據(jù) Java 虛擬機規(guī)范,第 4.7.8 節(jié))。

返回:

包含此堆棧跟蹤元素表示的執(zhí)行點的源行的行號,如果此信息不可用,則為負數(shù)。

getClassName

public String getClassName()

返回包含此堆棧跟蹤元素表示的執(zhí)行點的類的完全限定名稱。

返回:

包含此堆棧跟蹤元素表示的執(zhí)行點的類的完全限定名稱。

getMethodName

public String getMethodName()

返回包含此堆棧跟蹤元素表示的執(zhí)行點的方法的名稱。 如果執(zhí)行點包含在實例或類初始化程序中,則此方法將根據(jù) Java 虛擬機規(guī)范的第 3.9 節(jié)返回適當?shù)奶厥夥椒Q,<init> 或 <clinit>。

返回:

包含此堆棧跟蹤元素表示的執(zhí)行點的方法的名稱。

isNativeMethod

public boolean isNativeMethod()

如果包含此堆棧跟蹤元素表示的執(zhí)行點的方法是本機方法,則返回 true。

返回:

如果包含此堆棧跟蹤元素表示的執(zhí)行點的方法是本機方法,則為 true。

toString

public String toString()

返回此堆棧跟蹤元素的字符串表示形式。此字符串的格式取決于實現(xiàn),但以下示例可被視為典型:

  • “MyClass.mash(MyClass.java:9)” - 這里,“MyClass”是包含此堆棧跟蹤元素表示的執(zhí)行點的類的完全限定名稱,“mash”是包含執(zhí)行點,“MyClass.java”是包含執(zhí)行點的源文件,“9”是包含執(zhí)行點的源行的行號。
  • “MyClass.mash(MyClass.java)” - 同上,但行號不可用。
  • “MyClass.mash(Unknown Source)” - 同上,但文件名和行號都不可用。
  • “MyClass.mash(Native Method)” - 同上,但是文件名和行號都不可用,包含執(zhí)行點的方法已知是本地方法。

覆蓋:

類 Object 中的 toString

返回:

對象的字符串表示形式。

equals

public boolean equals(Object obj)

如果指定對象是另一個 StackTraceElement 實例,表示與此實例相同的執(zhí)行點,則返回 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 的語義。

覆蓋:

類 Object 中的等于

參數(shù):

參數(shù)名稱 參數(shù)描述
obj 要與此堆棧跟蹤元素進行比較的對象。

返回:

如果指定對象是另一個 StackTraceElement 實例,則表示與此實例相同的執(zhí)行點,則為 true。

hashCode

public int hashCode()

返回此堆棧跟蹤元素的哈希碼值。

覆蓋:

類 Object 中的 hashCode

返回:

此對象的哈希碼值。

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號