反射
是一种底层技术. 通常用于底层框架的编写
类对象-Class
-
类对象:是类加载的产物,存放着类的所有信息(如: 属性、方法、构造、父类信息、接口信息等)。 通常只有一个
-
类的对象:是类实例化的产物,存放着对象的具体信息,可以存在多个
获取
-
引用名.getClass()
//创建学生对象 Student stu = new Student(); //获取类对象 Class c1 = stu.getClass();
-
类名.class
Class<Student> c2 = Student.class;
-
Class.forName(“全限定名”)
Class c3 = Class.forName("com.by.entity.Student");
forName()需要处理非运行时异常
构建类的对象
-
类的对象 newInstance(): 通过无参构造构建类的实例
//无泛型的类对象-构建类的实例 Student student1 = (Student) c1.newInstance(); //有泛型的类对象-构建类的实例 Student student2 = c2.newInstance();
-
利用有参构造获取类的实例
-
Constructor<?> getDeclareConstructor(参数列表的类对象): 获取类对象中的有参构造器对象
-
构造器对象.newInstance(实参列表): 构建类的实例对象
-
Constructor<Student> con = c3.getDeclaredConstructor(String.class, int.class, double.class); //利用有参构造器获取类的实例对象 Student student3 = con.newInstance("张三", 20, 88.5);
-