为什么反射机制要依赖类的无参构造方法
来源:互联网 发布:网络作答系统网站 编辑:程序博客网 时间:2024/05/16 12:28
- 反射机制出现的InstantiationException异常
做反射机制时,执行如下的语句:
Class class1 = Class.forName(className);
Object o1 = class1.newInstance();
出下面的异常:
Exception in thread "main" java.lang.InstantiationException:classtest.PersonServiceBean
atjava.lang.Class.newInstance0(Class.java:340)
atjava.lang.Class.newInstance(Class.java:308)
atclasstest.JustTest.classInstanceTest(JustTest.java:33)
atclasstest.JustTest.main(JustTest.java:13)进行debug调试:
程序运行到Class.class文件,
try {
Class[]empty = {};
final Constructor<T> c =getConstructor0(empty,Member.DECLARED);
//执行到此句时,出noSuchMethod异常,跳到catch
java.security.AccessController.doPrivileged
(new java.security.PrivilegedAction() {
public Object run() {
c.setAccessible(true);
return null;
}
});