方法内 如何得到当前方法名

public class MyTest {

    public static void main(String args[]) {

      new MyTest().doit();

    }

    public void doit() {

      System.out.println

         (new Exception().getStackTrace()[0].getMethodName());

    }

}

 

 

JDK1.5, a new technique is available.

public class Test {
 public static void main(String args[]) {
    trace(Thread.currentThread().getStackTrace());
    new Test().doit();
    trace(Thread.currentThread().getStackTrace());
 }
 public void doit() {
    trace(Thread.currentThread().getStackTrace());
    doitagain();
  }
 public void doitagain() {
    trace(Thread.currentThread().getStackTrace());
  }

 public static void trace(StackTraceElement e[]) {
   boolean doNext = false;
   for (StackTraceElement s : e) {
       if (doNext) {
          System.out.println(s.getMethodName());
          return;
       }
       doNext = s.getMethodName().equals("getStackTrace");
   }
 }
}

 

main
doit
doitagain
main
参考: http://www.rgagnon.com/javadetails/java-0420.html

你可能感兴趣的:(thread,html)