package com.xinay.annotation.reflex;
/**
* @Author xin
* @date 2021/5/30 16:39
* @Description 得到class类对象的几种方式
*/
public class ReflectionTest {
public static void main(String[] args) throws Exception{
}
}
class Student extends Person{
public Student() {
}
public Student(String name) {
this.setName(name);
}
}
class Person{
private 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 + ‘\‘‘ +
‘}‘;
}
}
Person person = new Student("张三");
System.out.println("这个人是==>"+person.getName());
Class c1 = person.getClass();
System.out.println(c1.hashCode());
这个人是==>张三
548308290
Class c2 = Class.forName("com.xinay.annotation.reflex.Student");
System.out.println(c2.hashCode());
这个人是==>张三
1475668637
1475668637
Class<Student> c3 = Student.class;
System.out.println(c3.hashCode());
这个人是==>张三
1166557977
1166557977
1166557977
Class<Integer> type = Integer.TYPE;
System.out.println(type);
int
/**
* The {@code Class} instance representing the primitive type
* {@code int}.
*
* @since JDK1.1
*/
public static final Class<Integer> TYPE = (Class<Integer>) Class.getPrimitiveClass("int");
Class c5 = c1.getSuperclass();
System.out.println(c5);
class com.xinay.annotation.reflex.Person
原文:https://www.cnblogs.com/xinay/p/14829597.html