代码示例:
public class TestConstructor { @Test public void test1() throws Exception { String className = "com.peter.java19.Person"; Class clazz = Class.forName(className); //创建对应的运行时类的对象。使用newInstance()实际上就是调用了运行时的空参的构造器。 //要先想能够创建成功 1.要求对应的运行时类要有空参的构造器。 2.构造器的权限修饰符的权限要足够。 Object obj = clazz.newInstance(); Person p = (Person) obj; System.out.println(p); } }
结果:
Person{name='null', age=0}
使用反射前的那种方式与使用反射的这种方式实际上都是调用了构造器,当Person p1 = new Person()时,实际上就已经是存在了Class的类加载了,当再Person p2 = new Person()时,内存中已经存在了Person就不会再去加载它。