package com.hrf.reflect02;
public class ReflectTest {
public static void main(String[] args) throws Exception {
// 动态创建对象的过程就叫反射.
way01();
way02();
way03();
way04();
}
// 构造反射的三种方式
// 1.
public static void way01() throws Exception {
// 获取反射的类型
Class<?> c = Class.forName("com.hrf.reflect02.Person");
// 创建对象
Person person = (Person) c.newInstance();
System.out.println(person.getUsername());
}
// 2.
public static void way02() throws Exception {
// 获取反射的类型
Class<?> c = Person.class;
// 创建对象
Person person = (Person) c.newInstance();
System.out.println(person.getUsername());
}
// 3.
public static void way03() throws Exception {
// 通过对象方式获取反射的类型
Person person = new Person();
Class<? extends Person> c = person.getClass();
System.out.println(c);
}
// 4.
public static void way04() throws Exception {
// 通过类加载器
ClassLoader classLoader = new ClassLoader() {
};
// 获取反射的类型
Class<?> loadClass = classLoader.loadClass("com.hrf.reflect02.Person");
// 创建对象newInstance()创建实例.
Person person = (Person) loadClass.newInstance();
System.out.println(person.getUsername());
}
}
class Person{
private String username = "张三";
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
}
获取反射类型的四种方式.1.Class.forName();2.Person.class;3.person.getClass();4.classLoader.loadClass()
最新推荐文章于 2022-12-16 11:29:02 发布