首頁 > Java > java教程 > 主體

Java 9中的StackWalker API?

PHPz
發布: 2023-09-11 13:21:08
轉載
862 人瀏覽過

Java 9中的StackWalker API?

StackWalker API 允許輕鬆過濾和延遲存取以在任何方法中執行任務。它是Java 9中用於取得堆疊追蹤資訊的高效 API。

StackWalker API 中新增了三個重要類別:StackWalker StackWalker.StackFrameStackWalker.Option

StackWalker  它是 中的主類別>StackWalker API。我們使用StackWalker.forEach()方法遍歷堆疊幀,並透過呼叫StackWalker.getCallerClass()方法有效地取得呼叫者類別。我們使用 StackWalker.walk() 方法遍歷堆疊追蹤並在堆疊幀流上應用函數。

StackWalker.StackFrame 它是 StackWalker 的一個靜態巢狀類別,表示 StackWalker 的方法呼叫傳回。它具有存取給定堆疊幀資訊的方法,例如 getDeclaringClass()getLineNumber() 等。

StackWalker.Option - 它是StackWalker 的一個靜態巢狀類別,當我們透過SackWalker.getInstance() 建立實例時,為stack walker 提供配置堆疊幀資訊的選項。

範例

import java.util.List;
import java.util.stream.Collectors;
public class StackWalkingTest {
   public static void main(String args[]) {
      final <strong>List<StackWalker.StackFrame></strong> stack = StackWalker.<strong>getInstance()</strong>
      .<strong>walk</strong>(s -> s.<strong>collect</strong>(Collectors.toList()));
      for(<strong>StackWalker.StackFrame</strong> sf : stack) {
         System.out.println(sf.<strong>getClassName()</strong> + "::" + sf.<strong>getMethodName()</strong> + ":" + sf.<strong>getLineNumber()</strong>);
      }
   }
}
登入後複製

輸出

<strong>StackWalkingTest::main:6</strong>
登入後複製

以上是Java 9中的StackWalker API?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:tutorialspoint.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板