• java 反射基本认识


    java 反射基本认识

    最近重新复习java反射的知识,有了新的理解。

    class类?

    在面向对象中,万事万物皆对象。类也是个对象,是java.lang.class类的实例对象。

    public class ClassDemol {
     public static void main(String arg[]){
         //创建了Person 类的实例对象
         // 如何创建Person 类的类对象
         Person person = new pserson();
         //有三种方法表示
         //第一种
         Class c1 = Person.class;
         //第二种
          Class c2 = person.getClass();
          // 第三种
          Class.fromName("java.xx.xx");
     }
    }
    
    class Person{}
    

    java 静态加载类和动态加载类

    • 在编译时期,会加载需要使用所有的类,成为静态加载类。比如 new 创建对象,那么该类在编译时期,就需要加载。
    • 在运行时期,会加载需要使用所有的类,成为动态加载类。比如 class 类对象的NewInstance()方法创建某个类的对象,再运行时期,需要加载。

    class类的方法

     // 获取类类型
     class c = obj.getClass();
     //获取类的名称
     c.getName();
     //获取类的自身public 方法以及继承的public 方法
     Method[] ms= c.getMethod();
     //获取类的自身public 方法以及继承的public 方法
     Method[] ms= c.getMethods();
     //获取类的自身所有方法
     Method[] ms= c.getDeclareMethods();
     //获取类的某个方法返回类型的类型
     Class returntype =  ms[i].getReturnType();
     //获取类的某个方法参数类型的类型
     Class paramtype =  ms[i].getParamType();
    

    方法反射

    //获取相应的方法类类型
    Method m = c.getMethod("printf",int.class,int.class);
    //方法调用,可以调到相应的方法
    m.invoke(c,19,19);

  • 相关阅读:
    am335x gpio控制
    递归删除子目录下所有.la后缀文件
    linphone 在am335x的编译过程
    linphone 调试信息
    【POJ 3020】Antenna Placement(二分图匹配)
    【POJ 1062】昂贵的聘礼(最短路)
    【POJ 2485】Highways(Prim最小生成树)
    【Gym 100947E】Qwerty78 Trip(组合数取模/费马小定理)
    解决already defined in .obj 的问题(定义/声明的区别)
    C语言+SDL2 图形化编程
  • 原文地址:https://www.cnblogs.com/Lollipop_Hsu/p/11471219.html
Copyright © 2020-2023  润新知