Java 9 の StackWalker API?

PHPz
リリース: 2023-09-11 13:21:08
転載
849 人が閲覧しました

Java 9中的StackWalker API?

StackWalker API 簡単なフィルタリングと遅延アクセスを使用して、任意のメソッドでタスクを実行できます。これは、スタック トレース情報を取得するための Java 9 の効率的な API です。

StackWalker API に 3 つの重要な新しいクラス (StackWalker StackWalker.StackFrame、および StackWalker.Option) が追加されました。

StackWalker >StackWalker API のメインクラスです。 StackWalker.forEach() メソッドを使用してスタック フレームを走査し、StackWalker.getCallerClass() メソッドを呼び出すことで呼び出し元クラスを効率的に取得します。 StackWalker.walk() メソッドを使用してスタック トレースをたどり、スタック フレーム ストリームに関数を適用します。

StackWalker.StackFrame これは StackWalker の static ネストされたクラス であり、StackWalker のメソッド呼び出しの戻りを表します。 getDeclaringClass()getLineNumber() など、特定のスタック フレームの情報にアクセスするメソッドがあります。

StackWalker.Option - これは StackWalker の 静的ネスト クラス です。SackWalker.getInstance() を通じてインスタンスを作成すると、次のものが提供されますスタック フレーム情報を構成するオプションを備えたスタック ウォーカー。

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 中国語 Web サイトの他の関連記事を参照してください。

ソース:tutorialspoint.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!