카테고리 없음
Get the current method name
neokido
2009. 6. 22. 13:47
Get the current method name
JDK1.4public class MyTest { public static void main(String args[]) { new MyTest().doit(); } public void doit() { System.out.println (new Exception().getStackTrace()[0].getMethodName()); } }
doit
While the above snippet is not bad, it is expensive since we need to create an Exception.
With 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
public class Test { public static void main(String args[]) { new Test().doit(); } public void doit() { System.out.println( Thread.currentThread().getStackTrace()[3].getMethodName()); } }
출처 : http://www.rgagnon.com/javadetails/java-0420.html