我想知道是否有办法知道在运行时正在执行的方法名称?
例如,在private void doSomething (String s)
方法中,我想知道我正在执行doSomething (String s)
方法。
答案 0 :(得分:61)
自JDK1.5起,您不需要Exception来获取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
}
}
答案 1 :(得分:10)
System.out.println(new Exception().getStackTrace()[0].getMethodName());
另见
答案 2 :(得分:-2)
Method lastMethodCalled = this.getClass().getEnclosingMethod();