Java StackTraceElement 類



介紹

Java StackTraceElement 類元素代表單個棧幀。除棧頂的棧幀外,所有棧幀都表示方法呼叫。棧頂的棧幀表示生成堆疊跟蹤的執行點。

類宣告

以下是java.lang.StackTraceElement類的宣告:

public final class StackTraceElement
   extends Object
      implements Serializable

類建構函式

序號 建構函式和描述
1

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

這將建立一個代表指定執行點的堆疊跟蹤元素。

類方法

序號 方法和描述
1 boolean equals(Object obj)

如果指定的物件是另一個代表與該例項相同的執行點的StackTraceElement例項,則此方法返回true。

2 String getClassName()

此方法返回包含此堆疊跟蹤元素所代表的執行點的類的完全限定名稱。

3 String getFileName()

此方法返回包含此堆疊跟蹤元素所代表的執行點的原始檔的名稱。

4 int getLineNumber()

此方法返回包含此堆疊跟蹤元素所代表的執行點的原始碼行的行號。

5 String getMethodName()

此方法返回包含此堆疊跟蹤元素所代表的執行點的方法的名稱。

6 int hashCode()

此方法返回此堆疊跟蹤元素的雜湊程式碼值。

7 boolean isNativeMethod()

如果包含此堆疊跟蹤元素所代表的執行點的方法是本地方法,則此方法返回true。

8 String toString()

此方法返回此堆疊跟蹤元素的字串表示形式。

繼承的方法

此類繼承自以下類的方法:

  • java.lang.Object

示例:使用 StackTraceElement 獲取當前執行緒類名

以下示例演示了 Java StackTraceElement getClassName() 方法的用法。在這個程式中,我們定義了一個名為 function2() 的函式,它從當前執行緒的 StackTraceElement 獲取類名。另一個名為 function1() 的函式用於例項化 StackTraceElementDemo 類並呼叫 function2() 方法。在 main 方法中,我們呼叫了 function1() 方法,並列印結果。

package com.tutorialspoint;

public class StackTraceElementDemo {

   // main method
   public static void main(String[] args) {
      // call function1() to invoke function2()     
      function1();
   }
   
   // function1() is to invoke function2()
   // using StackTraceElementDemo object
   public static void function1() {
      new StackTraceElementDemo().function2();
   }
 
   // print the class name of current thread using StackTraceElement
   public void function2() {
      System.out.print("class name : ");
      System.out.print(Thread.currentThread().getStackTrace()[1].
      getClassName());
   }
}

輸出

讓我們編譯並執行上述程式,這將產生以下結果:

class name : com.tutorialspoint.StackTraceElementDemo
廣告