Java中反射的三种方式
//方法一
Person person1 = new Person();
Class clazz1 = person1.getClass();
System.out.println("方法1:"+person1);
//方法二
Class<Person> clazz2 = Person.class;
Person person2 = (Person) clazz2.getDeclaredConstructor().newInstance();
System.out.println("方法2:"+person2);
//方法三
Class<?> clazz3 = Class.forName("org.reflex.Person");
Constructor con = clazz3.getDeclaredConstructor();
con.setAccessible(true);
Person person3 = (Person)con.newInstance();
System.out.println("方法3:"+person3);
由于Java9以后直接使用clazz.newInstance()方式提示过时
使用newInstance()方法时需要首先通过调用getDeclaredConstructor()或getConstructor()后再调用newInstance()方法
clazz2.getDeclaredConstructor().newInstance();