Javaのメソッド呼び出し階層を表示する

Threadオブジェクトからスタックトレースを取得できるのでそれを使用する。

System.out.println(java.util.Arrays.stream(Thread.currentThread().getStackTrace())
    .skip(1).limit(4).map(t -> t.getClassName() + "." + t.getMethodName()).collect(java.util.stream.Collectors.joining(",")));

skip(1)をかましているのは結果にgetStackTraceメソッド呼び出しも含まれているため。