一、如何利用反射获取对象
所使用的pojo:
public class Person {
private String name;
private static int age = 58;
public Person() {
System.out.println("Person的无参构造器");
}
public Person(String name) {
this.name = name;
System.out.println("Person的有参构造器");
}
}//提供get和set方法
public class Student extends Person {
public Student() {
System.out.println("Student的无参构造器");
this.setName("学生");
}
}
测试代码:
public static void main(String[] args) throws ClassNotFoundException {
Person person = new Student();
System.out.println("这个人是:" + person);
//方式一:通过对象获得
Class c1 = person.getClass();
System.out.println(c1);
System.out.println(c1.hashCode());
//方式二:通过forName获得
Class c2 = Class.forName("com.mi.pojo.Student");
System.out.println(c2);
System.out.println(c2.hashCode());
//方式三:通过类名.class获得
Class c3 = Student.class;
System.out.println(c3);
System.out.println(c3.hashCode());
//获得父类类型
Class superclass = c3.getSuperclass();
System.out.println(superclass);
System.out.println(superclass.hashC