1、测试获得Class类的方法
1、对象.getClass();
2、Class.forName(“包名+类名”)
3、类名.class
//测试获得Class类的方法
public class Test01 {
public static void main(String[] args) throws ClassNotFoundException {
Student student = new Student();
System.out.println("这是个"+student.name);
//获取Class类型对象 方式1:通过对象获得
Class c1 = student.getClass();
System.out.println(c1.hashCode());
//获取Class类型对象 方式2:通过forName()方法获得
Class c2 = Class.forName("com.yiheng.yiheng_02_reflection.Student");
System.out.println(c2.hashCode());
//获取Class类型对象 方式3:通过 类名.class 获得
Class<Student> c3 = Student.class;
System.out.println(c3.hashCode());
//获取Class类型对象 方式4:基本内置类型的包装类都有一个Type属性
Class<Integer> c4 = Integer.TYPE;
Class<Long> c5 = Long.TYPE;
System.out.println(c4.hashCode());
System.out.println(c4);
System.out.println(c5.hashCode());
System.out.println("==================");
//获得父类类型
Class superclass = c1.getSuperclass();
System.out.println(superclass);
}
}
//人类
class Person{
String name;
public Person() {
}
public Person(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setName(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="老师";
}
}
2、那些对象可以获得Class类的对象
import java.lang.annotation.ElementType;
//测试那些对象可以获得Class类的对象
public class Test02 {
public static void main(String[] args) {
Class<Object> c1 = Object.class;//祖宗类
Class<Comparable> c2 = Comparable.class;//接口
Class<String[]> c3 = String[].class;//数组
Class<int[][]> c4 = int[][].class;//二维数组类
Class<Override> c5 = Override.class;//注解
Class<ElementType> c6 = ElementType.class;//枚举类
Class<Integer> c7 = Integer.class;
Class<Void> c8 = void.class;//空
Class<Class> c9 = Class.class;//Class类
System.out.println(c1);
System.out.println(c2);
System.out.println(c3);
System.out.println(c4);
System.out.println(c5);
System.out.println(c6);
System.out.println(c7);
System.out.println(c8);
System.out.println(c9);
}
}