构造对象时使用 newInstance()方法调用时报错
Exception in thread "main" java.lang.InstantiationException: reflection.User
at java.lang.Class.newInstance(Class.java:427)
at reflection.Demo8.main(Demo8.java:21)
Caused by: java.lang.NoSuchMethodException: reflection.User.<init>()
at java.lang.Class.getConstructor0(Class.java:3082)
at java.lang.Class.newInstance(Class.java:412)
... 1 more
出现该错误是因为 reflection包下的User类缺少无参构造,因为newInstance()方法本质上是调用无参构造,而调用的该类没有无参构造故而报错。
在解决这个问题之前,我们必须先要理解调用Class对象的newInstance()方法,并使其成功运行必须满足两个条件:
- 类必须有一个无参数的构造器
- 类的构造器访问权限必须满足
接下来就是开始解决该问题
解决办法
在该类中添加无参构造方法或者换其他调用方法。