列印當前呼叫者類

以下列印當前呼叫者類。請注意,在這種情況下, StackWalker 需要與選項建立 RETAIN_CLASS_REFERENCE ,使 Class 例項保留在 StackFrame 物件。否則會發生異常。

public class StackWalkerExample {

    public static void main(String[] args) {
        FooHelper.foo();
    }

}

class FooHelper {
    protected static void foo() {
        BarHelper.bar();
    }
}

class BarHelper {
    protected static void bar() {
        System.out.println(StackWalker.getInstance(Option.RETAIN_CLASS_REFERENCE).getCallerClass());
    }
}

輸出:

class test.FooHelper