実行時に実行されているメソッド名を知る方法があるかどうか疑問に思っていましたか?
たとえば、private void doSomething (String s)
メソッド内で、doSomething (String s)
メソッドを実行していることを知りたいです。
JDK1.5以降、StackTraceを取得するために例外は必要ありません。
これは Thread.currentThread().getStackTrace()
で取得できます:
public class Test2 {
public static void main(String args[]) {
new Test2().doit();
}
public void doit() {
System.out.println(
Thread.currentThread().getStackTrace()[1].getMethodName()); // output : doit
}
}
System.out.println(new Exception().getStackTrace()[0].getMethodName());
も参照してください