摘要:目的对于我这种半路出家的码代码的,一直以来最不好的习惯就是非常依赖和,但是如果代码量大的话一直切换找来找去特别不方便。最近在将一部分接口测试自动化,刚好重新学下,一个就会包含很多,翻来翻去十分不方便,于是就想把一个中的文件中的所有遍历出来。
目的
对于我这种半路出家的码代码的,一直以来最不好的习惯就是非常依赖Ctr+C和Ctr+V,但是如果代码量大的话一直切换Tab找来找去特别不方便。最近在将一部分接口测试自动化,刚好重新学下Java,一个case就会包含很多method,翻来翻去十分不方便,于是就想把一个class中的.java文件中的所有method遍历出来。
方案
一开始想看下Python能不用正则的方法直接读取.java文件然后匹配出来所有的方法名,后来想想估计代价有点高,pass;
刚好接触到Java的反射,利用反射机制获取到所有的方法和参数类型
代码
package push; import java.lang.reflect.Method; public class getmethod { public static void main(String[] args) { getMethodInfo("push.Demo"); } /** * 传入全类名获得对应类中所有方法名和参数名 */ @SuppressWarnings("rawtypes") private static void getMethodInfo(String pkgName) { try { Class clazz = Class.forName(pkgName); Method[] methods = clazz.getMethods(); for (Method method : methods) { String methodName = method.getName(); System.out.println("方法名称:" + methodName); Class>[] parameterTypes = method.getParameterTypes(); for (Class> clas : parameterTypes) { String parameterName = clas.getName(); System.out.println("参数类型:" + parameterName); } System.out.println("*****************************"); } } catch (ClassNotFoundException e) { e.printStackTrace(); } } }
输出
方法名称:main 参数类型:[Ljava.lang.String; ***************************** 方法名称:sendAndroidUnicast_normal ***************************** 方法名称:sendAndroidBroadcast_normal ***************************** 方法名称:sendAndroidUnicast_mul ***************************** 方法名称:sendAndroidUnicast_bid ***************************** 方法名称:sendAndroidUnicast_tzh ***************************** 方法名称:sendAndroidUnicast_ten ***************************** 方法名称:sendAndroidUnicast_tzhlong ***************************** 方法名称:sendAndroidUnicast_tenlong ***************************** 方法名称:sendAndroidUnicast_tsp ***************************** 方法名称:sendAndroidUnicast_txzh ***************************** 方法名称:sendAndroidUnicast_txen ***************************** 方法名称:sendAndroidUnicast_txzhlong ***************************** 方法名称:sendAndroidUnicast_txenlong
等等......
这样我就可以愉快的快速粘贴到case文件中了,哈哈
.......
@Test public void title_en() { try { demo.sendAndroidUnicastten(); } catch (Exception ex) { ex.printStackTrace(); } } @Test public void title_zh() { try { demo.sendAndroidUnicast_tzh(); } catch (Exception ex) { ex.printStackTrace(); } } @Test public void title_zhlong() { try { demo.sendAndroidUnicast_tzhlong(); } catch (Exception ex) { ex.printStackTrace(); } } ......
总结
反射的确是个好东西
不过码代码手速快的,还是一行一行的打吧,哈哈
欢迎加入学习交流群569772982,大家一起学习交流。
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/67745.html
摘要:在的反射包中提供了三个类以及来分别描述属性方法和构造器。获取构造器获取方法可以看到我们可以通过一个类的对象很轻松的获取他的属性构造器以及方法信息。返冋一个用于描述构造器名的字符串。 想要获取更多文章可以访问我的博客 - 代码无止境。 上周上班的时候解决一个需求,需要将一批数据导出到Excel。本来公司的中间件组已经封装好了使用POI生成Excel的工具方法,但是无奈产品的需求里面有个合...
摘要:通过反射获取带参无返回值成员方法并使用设置安全检查,访问私有构造函数必须创建实例这种不行,注意和方法需要传递参数测试复制这个功能获取私有方法,同样注意和的区别赋予访问权限调用方法。 反射 目录介绍 1.反射概述 1.1 反射概述 1.2 获取class文件对象的三种方式 1.3 反射常用的方法介绍 1.4 反射的定义 1.5 反射的组成 1.6 反射的作用有哪些 2.反射的...
摘要:在思否上面开了一个专栏,主要是想对零散的知识点做一个梳理,在与大家交流的同时,也加强自己的理解。今天主要谈一下中的反射机制,虽然实际编程中我们很少直接使用,但是反射机制却始终围绕着我们程序员。 在思否上面开了一个专栏,主要是想对零散的知识点做一个梳理,在与大家交流的同时,也加强自己的理解。 今天主要谈一下Java中的反射机制,虽然实际编程中我们很少直接使用,但是反射机制却始终...
阅读 2061·2021-11-11 16:54
阅读 1045·2021-10-12 10:12
阅读 380·2019-08-30 15:43
阅读 648·2019-08-29 13:15
阅读 1078·2019-08-29 13:12
阅读 1527·2019-08-26 12:09
阅读 1657·2019-08-26 10:24
阅读 2254·2019-08-26 10:15