Как найти имя метода из этого метода в Java? Мне было интересно, есть ли способ узнать имя метода, которое выполняется во время выполнения? Например, внутри метода private void doSomething (String s) я хотел бы знать, что я выполняю метод doSomething (String s). Ответ 1 С 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 } } Ответ 2 System.out.println(new Exception().getStackTrace()[0].getMethodName()); Также см. Can-i-determine-who-is-calling-a-function-or-instantiating-a-class-in-java Ответ 3 Method lastMethodCalled = this.getClass().getEnclosingMethod();
Ответ 1 С 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 } }
Ответ 2 System.out.println(new Exception().getStackTrace()[0].getMethodName()); Также см. Can-i-determine-who-is-calling-a-function-or-instantiating-a-class-in-java