Java 获取当前类名和方法名的实现方法
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
Java 获取当前类名和方法名的实现方法 Java 获取当前类名和方法名的实现方法是 Java 编程语言中一个重要的知识点。通过获取当前类名和方法名,可以帮助开发者更好地了解程序的执行流程, Debug 程序和优化代码性能。 在 Java 中,获取当前类名和方法名有多种实现方法,每种方法都有其优缺点。下面将详细介绍四种常见的实现方法,并对比其性能。 方法 1:通过 SecurityManager 的保护方法 getClassContext() ```java public static void testGetClassName() { String clazzName = new SecurityManager() { public String getClassName() { return getClassContext()[1].getName(); } }.getClassName(); System.out.println(clazzName); } ``` 方法 2:通过 Throwable 的方法 getStackTrace() ```java public static void testGetClassName() { String clazzName2 = new Throwable().getStackTrace()[1].getClassName(); System.out.println(clazzName2); } ``` 方法 3:通过分析匿名类名称 ```java public static void testGetClassName() { String clazzName3 = new Object() { public String getClassName() { String clazzName = this.getClass().getName(); return clazzName.substring(0, clazzName.lastIndexOf('$')); } }.getClassName(); System.out.println(clazzName3); } ``` 方法 4:通过 Thread 的方法 getStackTrace() ```java public static void testGetClassName() { String clazzName4 = Thread.currentThread().getStackTrace()[2].getClassName(); System.out.println(clazzName4); } ``` 通过执行 100w 次测试,结果如下: * 方法 1:1718ms * 方法 2:4843ms * 方法 3:47ms * 方法 4:6484ms 从测试结果可以看出,方法 3 的性能最高,而方法 2 的性能最差。 获取当前方法名的实现方法也可以通过 Throwable 的方法 getStackTrace() 或者 Thread 的方法 getStackTrace() 来实现。 方法 1:通过 Throwable 的方法 getStackTrace() ```java public static void testGetFunctionName() { String funcName2 = new Throwable().getStackTrace()[1].getMethodName(); System.out.println(funcName2); } ``` 方法 2:通过 Thread 的方法 getStackTrace() ```java public static void testGetFunctionName() { String funcName4 = Thread.currentThread().getStackTrace()[2].getMethodName(); System.out.println(funcName4); } ``` 通过执行 100w 次测试,结果如下: * 方法 1:4856ms * 方法 2:6337ms 在选择获取当前类名和方法名的实现方法时,需要考虑到性能和可读性等因素。同时,需要注意的是不同的 JDK 版本对 getStackTrace() 方法的实现可能有所不同。




























- 粉丝: 3
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 动态分区分配方式的模拟C语言代码和C++代码.doc
- 强化大数据运用探索创新铁路单位履职考评分析.docx
- (标线标志交通信号灯)工程施工组织设计方案.doc
- 通信企业审计特殊考虑.doc
- 程序设计中的Stack详解.doc
- 大数据时代医院统计工作探究.docx
- vb课程课件测绘程序设计八.ppt
- 基于 C++ 编程语言构建的神经网络系统
- 城建档案信息化建设解决方案.docx
- 论一带一路视阈下计算机运用人才的培养.docx
- 整体家装工程项目管理手册.doc
- 互联网+背景下基于雨课堂的《地球概论》课程混合式教学探索.docx
- 《面向对象程序设计》C--综合练习(学生版)不含答案.doc
- 翻转式课堂在计算机应用基础教学中的应用分析.docx
- 网络安全架构设计及安全设备部署.pptx
- 在计算机监控系统中生成变电站事故信号.docx


