web-dev-qa-db-ja.com

Javaのそのメソッド内からメソッド名を見つける方法は?

実行時に実行されているメソッド名を知る方法があるかどうか疑問に思っていましたか?

たとえば、private void doSomething (String s)メソッド内で、doSomething (String s)メソッドを実行していることを知りたいです。

26
JAM

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
     }
   }
61
RealHowTo
System.out.println(new Exception().getStackTrace()[0].getMethodName());

も参照してください

10
Jigar Joshi