1.概述
反射是 java 中提供的一种机制,它允许我们在程序运行的时候,动态获取一个类中的基本信息,并且可 以调用类中的属性、方法、构造器。
Class 类: 对 Java 程序编写编译之后生成的 .class 文件的抽象描述
Class 对象:具体某一个 .class 文件的内容所形成的对象
类加载到内存(.class 文件加载)中,会在堆里形成一个 Class 对象,以泛型形式出现(Student 类的镜像),所创建的所有 Student1 这个类的对象中的数据都是从 Student1 类的镜像中拷贝的
2. Class 获取
- Class 对象的获取
(1) 通过 .class 属性获取: Class<Student1> sc = Student1.class; // sc.getConstructors() //所有构造器 Class<Integer> ic = int.class; // sc.getConstructor(参数是 Class 的可变长参 Class<Integer> ic1 = Integer.class; // 数列表)
// sc.getConstructor(String.class,int.class);
(2) 通过 forName 方法
String className="com.Student1";
Class<?> clazz== Class.forName(className);
(3)线程 getClass()
Student1 stu = new Student1();
Class<? extends Student1> sc = stu.getClass(); //泛型上限
- 获取类中的构造器