资讯专栏INFORMATION COLUMN

【Java】利用反射获取class中的所有方法

xavier / 2476人阅读

摘要:目的对于我这种半路出家的码代码的,一直以来最不好的习惯就是非常依赖和,但是如果代码量大的话一直切换找来找去特别不方便。最近在将一部分接口测试自动化,刚好重新学下,一个就会包含很多,翻来翻去十分不方便,于是就想把一个中的文件中的所有遍历出来。

目的

对于我这种半路出家的码代码的,一直以来最不好的习惯就是非常依赖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

相关文章

  • 一文带你了解Java反射机制

    摘要:在的反射包中提供了三个类以及来分别描述属性方法和构造器。获取构造器获取方法可以看到我们可以通过一个类的对象很轻松的获取他的属性构造器以及方法信息。返冋一个用于描述构造器名的字符串。 想要获取更多文章可以访问我的博客 - 代码无止境。 上周上班的时候解决一个需求,需要将一批数据导出到Excel。本来公司的中间件组已经封装好了使用POI生成Excel的工具方法,但是无奈产品的需求里面有个合...

    darcrand 评论0 收藏0
  • Java反射详细介绍

    摘要:通过反射获取带参无返回值成员方法并使用设置安全检查,访问私有构造函数必须创建实例这种不行,注意和方法需要传递参数测试复制这个功能获取私有方法,同样注意和的区别赋予访问权限调用方法。 反射 目录介绍 1.反射概述 1.1 反射概述 1.2 获取class文件对象的三种方式 1.3 反射常用的方法介绍 1.4 反射的定义 1.5 反射的组成 1.6 反射的作用有哪些 2.反射的...

    ingood 评论0 收藏0
  • java反射机制的基本语法及练习

    摘要:在思否上面开了一个专栏,主要是想对零散的知识点做一个梳理,在与大家交流的同时,也加强自己的理解。今天主要谈一下中的反射机制,虽然实际编程中我们很少直接使用,但是反射机制却始终围绕着我们程序员。 在思否上面开了一个专栏,主要是想对零散的知识点做一个梳理,在与大家交流的同时,也加强自己的理解。   今天主要谈一下Java中的反射机制,虽然实际编程中我们很少直接使用,但是反射机制却始终...

    gaomysion 评论0 收藏0
  • Java 反射

    摘要:反射的使用通过反射获取构造方法并使用首先我们声明一个类方便我们进行介绍默认的构造方法默认的构造方法无参构造方法调用了公有无参构造方法执行了。。。 1.概述 1.1 什么是反射 java反射机制是指在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法,对于任意一个对象,都能调用它的任意一个方法和属性,这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。 1...

    nodejh 评论0 收藏0
  • 胖哥说反射 上卷

    摘要:可以通过提供的方法,获取对象,具体如下方法返回值方法名称方法说明返回一个指定参数的对象,该对象反映此对象所表示的类或接口的指定已声明方法。 我来学习反射 1.为什么我们要学习反射? 通过反射机制可以获取到一个类的完整信息,例如:所有(包含private修饰)属性和方法,包信息等。 换句话说,Class本身表示一个类的本身,通过Class可以完整获取一个类中的完整结构,包含此类中的方法定...

    hedzr 评论0 收藏0

发表评论

0条评论

xavier

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<