Java
 Computer >> コンピューター >  >> プログラミング >> Java

Java9のStackWalkerAPI?


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

StackWalkerAPIには3つの新しい重要なクラスがあります。StackWalker StackWalker.StackFrame およびStackWalker.Option

StackWalker StackWalkerのメインクラスです API StackWalker.forEach()を使用してスタックフレームをトラバースします メソッドを作成し、 StackWalker.getCallerClass()を呼び出して、効率的な方法で呼び出し元クラスを取得します。 方法。 StackWalker.walk()を使用して、スタックトレースをウォークスルーし、スタックフレームのストリームに関数を適用します。 メソッド。

StackWalker.StackFrame これは静的なネストされたクラスです StackWalkerのであり、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 List<StackWalker.StackFrame> stack = StackWalker.getInstance()
      .walk(s -> s.collect(Collectors.toList()));
      for(StackWalker.StackFrame sf : stack) {
         System.out.println(sf.getClassName() + "::" + sf.getMethodName() + ":" + sf.getLineNumber());
      }
   }
}

出力

StackWalkingTest::main:6

  1. Javaでjavax.jsonAPIを使用してJSONをきれいに印刷しますか?

    javax.json パッケージはオブジェクトモデルAPIを提供します JSONを処理します。 Object Model APIは、JSONオブジェクトおよび配列構造の不変のオブジェクトモデルを提供する高レベルのAPIです。これらのJSON構造は、 JSONObjectを使用してオブジェクトモデルとして表すことができます。 およびJsonArray インターフェイス。 JsonGeneratorを使用できます JSONデータをストリーミング方式で出力に書き込むためのインターフェース。 JsonGenerator.PRETTY_PRINTING JSONをきれいに生成するための構成プロパ

  2. Javaでスタックを使用してキューを実装するにはどうすればよいですか?

    キュー クラスはコレクションを拡張します インターフェイスであり、先入れ先出し(FIFO)を使用した挿入および削除操作をサポートします 。 スタック Vectorのサブクラスです クラスであり、後入先出(LIFO)を表します オブジェクトのスタック。スタックの一番上に追加された最後の要素(In)は、スタックから削除される最初の要素(Out)にすることができます。以下のプログラムでは、スタックを使用してキューを実装することもできます。 例 import java.util.*; public class QueueUsingStackTest {    private St