聪明文档网

聪明文档网

最新最全的文档下载
当前位置: 首页> 「Java中获取当前函数名、类名、当前类的文件名」

「Java中获取当前函数名、类名、当前类的文件名」

时间:2023-10-25 12:38:45    下载该word文档
ava中获取当前函数名、类名、当前类的文件名方法一:etClss(获取当前类名:Stigclazz=hs.geClass(getName();方法二(JDK5:Threa.currntThread在JDK5,有三个类拥有getStackTace方法,分别是Threadno,ThreadThrowabe。此处,我们用Thred.curretThra(中的StackTraceEeent来获取当前函数名。具体代码如下:1.获取当前函数名:Thread.curretThrad(getStckrce[2]gtMthodNam(;2.获取当前类名:Thread.currentThred.etStackTrace([2].geClsName(;例:ip.or.sk.comnSearchction3.获取当前类的文件名:Thread.currntThrea(.getStackTrace([2].et;:earchctio.ava方法三:可在静态方法使用静态方法不与特定实例关联,不能引用this,要得到当前类名,没有直接的办法。通过查资料和试验,可以用下面几种方式:
publcstativoidtestGetClasName(//方法1:通过SecurityManager的保护方法getClassContex(ﻩﻩStrnglazzNae=nwSecurityManger({publicStringetCasNae(){ﻩﻩretungetClasontext[1].getName(;//获取的是包名.类名。}geClassame;ﻩﻩystem.out.pritln(clazzNam//方法2:通过Throwabe的方法gtStakTrae(StringclazzNam2nehrowabl(getStackTrace([1].getCasName(Systemou.pritn(lzzName2;/方法3:通过分析匿名类名称(StringclazzNamenewObjet({ﻩﻩpublctringgetClassame({
ﻩﻩﻩtrinclazzNaethis.getCas(.getNme(;/获取的是包名.类名。rtrnclazName.subtring0,clazzNme.lastIndexOf($}ﻩﻩ}.getClassame;ystm.out.rintn(cazzae3;}分别调用10万次,方法1:19ms方法2:95m方法3:1s比较:1方法1不知有没有什么使用限制?2方法2通过异常机制获取调用栈,性能最差,但能提供其它方法所不具有的功能,还可以获取方法名,行号等等;但这么使用多少有点不太常规;3)方法3只是简单分析了一下匿名类的名称,显然要简单多,事实上性能也是最高的;
  • 29.8

    ¥45 每天只需1.0元
    1个月 推荐
  • 9.9

    ¥15
    1天
  • 59.8

    ¥90
    3个月

选择支付方式

  • 微信付款
郑重提醒:支付后,系统自动为您完成注册

请使用微信扫码支付(元)

订单号:
支付后,系统自动为您完成注册
遇到问题请联系 在线客服

常用手机号:
用于找回密码
图片验证码:
看不清?点击更换
短信验证码:
新密码:
 
绑定后可用手机号登录
请不要关闭本页面,支付完成后请点击【支付完成】按钮
遇到问题请联系 在线客服