是一种底层技术. 通常用于底层框架的编写
类对象:是类加载的产物,存放着类的所有信息(如: 属性、方法、构造、父类信息、接口信息等)。 通常只有一个
类的对象:是类实例化的产物,存放着对象的具体信息,可以存在多个
引用名.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);