鴻蒙OS StackTraceElement

2022-05-20 15:48 更新

StackTraceElement

java.lang.Object

|---java.lang.StackTraceElement

public final class StackTraceElement
extends Object
implements Serializable

堆棧跟蹤中的一個(gè)元素,由 Throwable#getStackTrace() 返回。 每個(gè)元素代表一個(gè)堆棧幀。 除了棧頂?shù)臈猓袟即硪粋€(gè)方法調(diào)用。 堆棧頂部的幀表示生成堆棧跟蹤的執(zhí)行點(diǎn)。 通常,這是創(chuàng)建對(duì)應(yīng)于堆棧跟蹤的 throwable 的點(diǎn)。

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

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

方法總結(jié)

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

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

StackTraceElement

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

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

參數(shù):

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

Throws:

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

方法詳情

getFileName

public String getFileName()

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

返回:

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

getLineNumber

public int getLineNumber()

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

返回:

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

getClassName

public String getClassName()

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

返回:

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

getMethodName

public String getMethodName()

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

返回:

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

isNativeMethod

public boolean isNativeMethod()

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

返回:

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

toString

public String toString()

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

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

覆蓋:

類 Object 中的 toString

返回:

對(duì)象的字符串表示形式。

equals

public boolean equals(Object obj)

如果指定對(duì)象是另一個(gè) StackTraceElement 實(shí)例,表示與此實(shí)例相同的執(zhí)行點(diǎn),則返回 true。 兩個(gè)堆棧跟蹤元素 a 和 b 相等當(dāng)且僅當(dāng):

     equals(a.getFileName(), b.getFileName()) &&
     a.getLineNumber() == b.getLineNumber()) &&
     equals(a.getClassName(), b.getClassName()) &&
     equals(a.getMethodName(), b.getMethodName())

其中 equals 具有 Objects.equals 的語(yǔ)義。

覆蓋:

類 Object 中的等于

參數(shù):

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

返回:

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

hashCode

public int hashCode()

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

覆蓋:

類 Object 中的 hashCode

返回:

此對(duì)象的哈希碼值。

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

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)