获取Class类实例的几种方法
package com.ch.test;
public class TestClass {
public static void main(String[] args) throws ClassNotFoundException {
Person person=new Student();
System.out.println("这个人是:"+person.name);
}
}
class Person{
public String name;
public Person() {
}
public Person(String name) {
this.name = name;
}
@Override
public String toString() {
return "Person{" +
"name='" + name + ''' +
'}';
}
}
class Student extends Person{
public Student(){
this.name="学生";
}
}
class Teacher extends Person{
public Teacher() {
this.name="老师";
}
}
1. 通过对象获取
Class c1 = person.getClass()
System.out.println(c1.hashCode()
2. 通过forName获取
Class c2 = Class.forName("com.ch.test.Student")
System.out.println(c2.hashCode())
3. 通过类名.class获取
Class c3 = Student.class
System.out.println(c3.hashCode())
4. 基本内置类型的包装类都有一个type属性
Class c4 = Integer.TYPE
System.out.println(c4.hashCode())
5. 获得父类类型
Class c5 = c1.getSuperclass()
System.out.println(c5)
输出结果
