今天,看朋友编写程序,打印日志时,需要记录当前类的类名以及当前方法的方法名,我发现 TA 将类名或者方法名直接写死在了代码中。。。虽说这样可以实现记录类名和方法名,但是当有特殊情况需要修改类名或者方法名时,源码中涉及类名或者方法名的地方必须同步变更,若修改的地方比较多,难免可能发生有遗漏的地方,那么后续通过日志查看分析原因时,就会找不到相应的地方,导致无法分析,查找原因。
为何要获取类名?
- 调试源码
- 记录日志
- 生成报告
- 统计分析,对调用比例占比大的方法,增强单元测试
- 构建系统调用关系链,对主要关系链或多分支方法重点测试,加强业务、功能、安全、性能等方面的测试
上述各作用,会逐步进行相应的简述,敬请期待!感兴趣的小主可先自行研究。
那么我们该如何获取对应的类名和方法名呢?其实,在 JDK 中早就提供了相关的方法或者途径获取相应的类名或方法名。不知道大家之前在调试 Java 源码的时候,在异常报错的时候,有没有查看过相应的报错信息,若是注意到此,那么相信你肯定也知道如何通过异常错误获取当前的类名和方法名了。
获取类名或者方法名的方法比较简单,在此不作详细的说明,直接上码了,敬请各位小主参阅。若有不足之处,敬请大神指正,不胜感激!
/**
* Aaron.ffp Inc.
* Copyright (c) 2004-2015 All Rights Reserved.
*/
package com.java.demo; import org.testng.annotations.Test; /**
* Get information of class and method
*
* @author Aaron.ffp
* @version V1.0.0: Jsoup com.java.demo GetClassMethodName.java, 2015-8-13 10:58:39 Exp $
*/
public class GetClassMethodName extends InvokeClass{
/**
* Get information of class
*
* @author Aaron.ffp
* @version V1.0.0: Jsoup com.java.demo GetClassMethodName.java test_getClassName, 2015-8-14 12:09:07 Exp $
*
*/
@Test
public void test_getClassName(){
System.out.println("this.getClass()\t\t\t\t" + this.getClass());
System.out.println("this.getClass().getName()\t\t" + this.getClass().getName());
System.out.println("this.getClass().getSimpleName()\t\t" + this.getClass().getSimpleName() + "\n");
} /**
* Get information of method
*
* @author Aaron.ffp
* @version V1.0.0: Jsoup com.java.demo GetClassMethodName.java test_getMethodName, 2015-8-14 12:10:02 Exp $
*
*/
@Test
public void test_getMethodName(){
// get info by exception
StackTraceElement[] ste = new Exception().getStackTrace(); for (int i = 0; i < ste.length; i++) {
if (i > 0) {
break;
}
System.out.println("ste[" + i + "].getFileName()" + "\t\t" + ste[i].getFileName() + "\n" +
"ste[" + i + "].getClassName()" + "\t\t" + ste[i].getClassName() + "\n" +
"ste[" + i + "].getLineNumber()" + "\t\t" + ste[i].getLineNumber() + "\n" +
"ste[" + i + "].getMethodName()" + "\t\t" + ste[i].getMethodName() + "\n");
} // get info by Thread
ste = Thread.currentThread().getStackTrace(); for (int i = 0; i < ste.length; i++) {
if (i != 1) {
continue;
} System.out.println("ste[" + i + "].getFileName()" + "\t\t" + ste[i].getFileName() + "\n" +
"ste[" + i + "].getClassName()" + "\t\t" + ste[i].getClassName() + "\n" +
"ste[" + i + "].getLineNumber()" + "\t\t" + ste[i].getLineNumber() + "\n" +
"ste[" + i + "].getMethodName()" + "\t\t" + ste[i].getMethodName() + "\n");
}
}
}
程序执行结果如下所示:
aaarticlea/png;base64,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" alt="" />
至此, Java学习-024-获取当前类名或方法名二三文 顺利完结,希望此文能够给初学 Java 的您一份参考。
最后,非常感谢亲的驻足,希望此文能对亲有所帮助。热烈欢迎亲一起探讨,共同进步。非常感谢! ^_^