• java 27


    类Method:提供关于类或接口上单独某个方法(以及如何访问该方法)的信息。

     

    A:获取所有方法 数组

      1、getMethods  获取该类包括其父类的公共成员方法

      2、getDeclaredMethods  获取该类的所有的成员方法

    B:获取单个方法

      1、getMethod 获取该类所有的公共类单个成员方法

      2、getDeclaredMethod 获取该类所有类型的单个成员方法

    A.1:获取该类包括其父类的公共成员方法 

            //获取字节码文件        
            Class c = Class.forName("zl_Relfect_01.Person");
            
            //获得该类与父类的所有的公共成员方法
            Method[] m1 = c.getMethods();
            for(Method m : m1){
                System.out.println(m);
            }

    A.2:getDeclaredMethods  获取该类的所有的成员方法

    1         //获取字节码文件        
    2         Class c = Class.forName("zl_Relfect_01.Person");
    3         //获取该类的所有类型的成员方法
    4         Method[] m1 = c.getDeclaredMethods();
    5         for(Method m : m1){
    6             System.out.println(m);
    7         }

    B:获取单个成员方法:

     1         //获取字节码文件        
     2         Class c = Class.forName("zl_Relfect_01.Person");
     3      //无参构造创建对象
     4         Constructor con = c.getConstructor();
     5         Object obj = con.newInstance();
     6         
     7         //获取该类单个无参无返回值公共类型的成员方法
     8         //无参的成员方法,只需写成员方法的名称
     9         Method m1 = c.getMethod("show");
    10         // public Object invoke(Object obj,Object... args) 返回值是Object接收,第一个参数表示对象是谁,第二参数表示调用该方法的实际参数
    11         //show是无参,无返回值构造
    12         m1.invoke(obj);//调用Person类的show方法
    13         
    14         
    15         //获取该类单个有参有返回值公共类型的成员方法
    16         Method m2 = c.getMethod("method", String.class);
    17         //没有返回值
    18         m2.invoke(obj, "哈喽");////调用Person类的method方法
    19         
    20         //获取该类单个有参有返回值公共类型的成员方法
    21         Method m3 = c.getMethod("getString", String.class,int.class);
    22         //有返回值, public Object invoke(Object obj,Object... args) 返回值是Object接收
    23         Object ob1 = m3.invoke(obj, "哈喽",123);
    24         System.out.println(ob1);
    25         
    26         //获取该类单个 无参无返回值的私有成员方法
    27         Method m4 = c.getDeclaredMethod("function");
    28         //取消语言访问检查
    29         m4.setAccessible(true);
    30         //调用Person类的function方法
    31         m4.invoke(obj);
  • 相关阅读:
    uniapp开发注意事项
    uniapp生成海报带二维码及保存
    严格模式的this
    数据类型
    短路特性
    第九周程序改错
    矩阵转置
    二分法求根
    三天打鱼两天晒网
    LeetCode7
  • 原文地址:https://www.cnblogs.com/LZL-student/p/5966418.html
Copyright © 2020-2023  润新知