在java1.9版本中,newInstance()已经被弃用,取而代之的是getDeclaredConstructor().newInstance()
Topic sourceClass<Person> personClass = Person.class;Person person = personClass.newInstance();Person person1 = personClass.getDeclaredConstructor(String.class).newInstance("xiao");Person person2 = personClass.getDeclaredConstructor(String.class, double.class).newInstance("xiao", 12D);System.out.println(person1.getName());System.out.println(person2.toString());
xiao
Person{name='xiao', age=12.0, books=demo.oop.Book@4fca772d}
- 1
Fwmmmm-
class.newInstance()
会直接调用该类的无参构造函数进行实例化
class.getDeclaredConstructor().newInstance()
getDeclaredConstructor()方法会根据他的参数对该类的构造函数进行搜索并返回对应的构造函数,没有参数就返回该类的无参构造函数,然后再通过newInstance进行实例化。
CSDN上一个博主讲的 搬运过来给大家伙看看