package com.zqh.reflect;
class Person{
public Person(){System.out.print("无参构造-Person\t");}
@Override
public String toString() {
return "hello! Person";
}
}
public class ReflectImpl {
public static void main(String[] args) {
System.out.println("\t-----Class类对象的三种实例化模式-----");
Person person = new Person();
Class<? extends Person> cls = person.getClass();
System.out.println(cls + "\t" + cls.getName());
Class<? extends Person> cls2 = Person.class;
System.out.println(cls2+"\t"+cls2.getName());
try {
Class<?> cls3 = Class.forName("com.zqh.reflect.Person");
System.out.println(cls3.getName());
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
System.out.println("\t-----运用反射实例化对象-----");
try {
Class<?> cls3 = Class.forName("com.zqh.reflect.Person");
Object object = cls3.newInstance();
System.out.println(object);
} catch (Exception e) {
e.printStackTrace();
}
try{
Class<?> cls3 = Class.forName("com.zqh.reflect.Person");
Object object = cls3.getDeclaredConstructor().newInstance();
System.out.println(object);
} catch (Exception e) {
e.printStackTrace();
}
}
}