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の