原文地址:
http://blog.sina.com.cn/s/blog_7cfc207d01019991.html
有时候我们需要在程序中获取当前运行的函数名,如何简单的做到这点呢?我们可以用getStackTrace轻松搞定。
一提到getStatckTrace多数人会联想到Thowable中的getStackTrace方法。的确,也正是发现 StackTraceElement中有getMethod方法,使我找到了此问题的突破口。
在Java JDK 5中,有三个类拥有getStackTrace方法,分别是ThreadInfo, Thread和Throwable。此处,我们用Thread.currentThread()中的StackTraceElement来获取当前函数名。具体代码如下:
1.获取当前函数名:Thread.currentThread().getStackTrace()[2].getMethodName();
2.获取当前类名:Thread.currentThread().getStackTrace()[2].getClassName();
例:ip.or.sk.common.SearchAction
3.获取当前类的文件名:Thread.currentThread().getStackTrace()[2].getFileName();
例:SearchAction.java