Java 9のStackFrameで特定のクラスをスキップするにはどうすればよいですか?
StackWalker API Java 9で導入されました 、および任意の時点での現在のスレッドのスタックトレースのスナップショットを提供し、それをウォークオーバーするメソッドがあります。 StackWalkerを使用する利点 Thread ::getStackTrace()上のクラスはフィルタリング またはスキップ 特定のクラスを取得し、クラス自体を宣言するインスタンスを取得し、完全なスタックトレース自体をプルする代わりに、ショートスタックトレースまたはフルスタックトレースを取得します。
以下の例では、 java.util.stream.Stream.skip()を使用できます。 スタックフレームをスキップする方法。
例
import java.lang.StackWalker.*;
import java.util.Optional;
import java.util.List;
import java.util.stream.Collectors;
import java.lang.StackWalker.StackFrame;
public class StackWalkerSkipTest {
public static void main(String args[]) {
new StackWalkerSkipTest().stackWalk();
}
private class StackWalker4 {
public void stackWalk4() {
List<StackFrame> framesAfterSkip = StackWalker.getInstance(StackWalker.Option.RETAIN_CLASS_REFERENCE).walk((s) ->
s.skip(2).collect(Collectors.toList()));
System.out.println("Frames after skip : \n" + framesAfterSkip.toString());
}
}
public void stackWalk() {
new StackWalker1().stackWalk1();
}
private class StackWalker1 {
public void stackWalk1() {
new StackWalker2().stackWalk2();
}
}
private class StackWalker2 {
public void stackWalk2() {
new StackWalker3().stackWalk3();
}
}
private class StackWalker3 {
public void stackWalk3() {
new StackWalker4().stackWalk4();
}
}
} Frames after skip : [StackWalkerSkipTest$StackWalker2.stackWalk2(StackWalkerSkipTest.java:29), StackWalkerSkipTest$StackWalker1.stackWalk1(StackWalkerSkipTest.java:24), StackWalkerSkipTest.stackWalk(StackWalkerSkipTest.java:19), StackWalkerSkipTest.main(StackWalkerSkipTest.java:9)]
-
Javaで他のパッケージのクラスを使用する方法
ボスクラスが給与パッケージで定義されている例を使用して理解できます。 package payroll; public class Boss { public void payEmployee(Employee e) { e.mailCheck(); } } Employeeクラスが給与パッケージに含まれていない場合はどうなりますか?次に、Bossクラスは、別のパッケージのクラスを参照するために、次のいずれかの手法を使用する必要があります。 クラスの完全修飾名を使用できます。例- payroll.
-
JavaでJSONを解析する方法
このチュートリアルでは、さまざまなライブラリを使用してJavaでJSONを解析する方法を見ていきます。 JSONはJavaScriptObjectNotationの略で、JavaScriptのサブセットに基づいています。 データ交換フォーマットとして、Webプログラミングで広く使用されています。ここでは、org.jsonを使用してJavaでJSONを解析する方法を示します。 ライブラリ。 JSONオブジェクトは、順序付けされていないキーと値のペアのセットです。 JSON配列は、順序付けられた値のコレクションです。値自体はオブジェクトまたは配列である可能性があります。 pageNameの