Java中获取当前函数名、类名、当前类的文件名.doc

Java中获取当前函数名、类名、当前类的文件名.doc

ID:62033708

大小:17.50 KB

页数:2页

时间:2021-04-15

Java中获取当前函数名、类名、当前类的文件名.doc_第1页
Java中获取当前函数名、类名、当前类的文件名.doc_第2页
资源描述:

《Java中获取当前函数名、类名、当前类的文件名.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、Java中获取当前函数名、类名、当前类的文件名方法一:getClass()获取当前类名:Stringclazz=this。getClass()。getName();方法二(JDK5):Thread。currentThread()在JDK5中,有三个类拥有getStackTrace方法,分别是ThreadInfo, Thread和Throwable。此处,我们用Thread。currentThread()中的StackTraceElement来获取当前函数名.具体代码如下:1.获取当前函数名:Thread.currentThre

2、ad()。getStackTrace()[2]。getMethodName();2.获取当前类名:Thread。currentThread().getStackTrace()[2]。getClassName();例:ip.or.sk。common.SearchAction3.获取当前类的文件名:Thread.currentThread()。getStackTrace()[2].getFileName();  例:SearchAction.java方法三:可在静态方法使用静态方法不与特定实例关联,不能引用this,要得到当前类名

3、,没有直接的办法。通过查资料和试验,可以用下面几种方式:publicstaticvoid testGetClassName() {ﻩ//方法1:通过SecurityManager的保护方法getClassContext()ﻩStringclazzName=newSecurityManager(){ﻩpublicStringgetClassName(){ﻩﻩreturngetClassContext()[1].getName(); //获取的是包名.类名。ﻩﻩ}ﻩ}。getClassName();ﻩSystem。out。prin

4、tln(clazzName);ﻩ//方法2:通过Throwable的方法getStackTrace()String clazzName2=newThrowable().getStackTrace()[1].getClassName();ﻩﻩSystem.out.println(clazzName2);ﻩﻩ//方法3:通过分析匿名类名称()String clazzName3 = new Object() {ﻩﻩpublic String getClassName(){ﻩStringclazzName =this.getClass

5、()。getName();//获取的是包名.类名.ﻩreturnclazzName。substring(0,clazzName。lastIndexOf(’$'));}ﻩﻩ}。getClassName();System.out。println(clazzName3);ﻩ}分别调用10万次,   方法1:219ms   方法2:953ms    方法3:31ms比较:   1)方法1不知有没有什么使用限制?   2)方法2通过异常机制获取调用栈,性能最差,但能提供其它方法所不具有的功能,还可以获取方法名,行号等等;但这么使用多少有

6、点不太常规;   3)方法3只是简单分析了一下匿名类的名称,显然要简单多,事实上性能也是最高的;

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。