java基础之反射

发布时间:2024年01月18日

反射

是一种底层技术. 通常用于底层框架的编写

类对象-Class

  • 类对象:是类加载的产物,存放着类的所有信息(如: 属性、方法、构造、父类信息、接口信息等)。 通常只有一个

  • 类的对象:是类实例化的产物,存放着对象的具体信息,可以存在多个

获取
  1. 引用名.getClass()

    //创建学生对象 ? ? ? ?Student stu = new Student(); ? ? ? ?//获取类对象 ? ? ? ?Class c1 = stu.getClass();
    
  2. 类名.class

    Class<Student> c2 = Student.class;
    
  3. Class.forName(“全限定名”)

? ??

  1. Class c3 = Class.forName("com.by.entity.Student");
    • forName()需要处理非运行时异常

构建类的对象
  1. 类的对象 newInstance(): 通过无参构造构建类的实例

    //无泛型的类对象-构建类的实例 Student student1 = (Student) c1.newInstance(); //有泛型的类对象-构建类的实例 Student student2 = c2.newInstance();
    
  2. 利用有参构造获取类的实例

    • Constructor<?> getDeclareConstructor(参数列表的类对象): 获取类对象中的有参构造器对象

      • 构造器对象.newInstance(实参列表): 构建类的实例对象

    Constructor<Student> con = c3.getDeclaredConstructor(String.class, int.class, double.class); ? ? ? ?//利用有参构造器获取类的实例对象 ? ? ? ?Student student3 = con.newInstance("张三", 20, 88.5);
    
文章来源:https://blog.csdn.net/zhzjn/article/details/135653829
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。