1 问题
在项目开发过程中如果你的项目中出现如下情况:则说明遇到对象实例化报错的问题。
2 方法
- .先分析报错原因,报错时,一定要看主要问题,对于遇到java.lang.InstantiationException实例化异常一般遇到这类问题,有两种情况。
- .第一种,要实例化的对象是一个接口或者是抽象类等无法被实例化的类。
解决方法就是在使用反射的机制时,由于抽象父类中的构造方法不是public的,所以导致异常的出现,其实很简单,只要将需要反射的类中的相应构造方法改为public即可。
(3).这个异常多半是由于通过反射在实例化的时候,对应的类里面覆盖了无参构造而导致无法实例化,由于创建类的时候,默认有一个无参构造,前提是没有其他构造方法,如果没有明确的将无参构造写出来,该类就是缺少无参构造了,也就导致了无法实例化。
解决方法就是建议在创建类的时候,建议保留(显式的写出来)无参构造。
3 结语
总结原因:遇到第一种情况只需将需要反射的类中的相应构造方法改为public就行了。而遇到第二种则要通过反射来为某个类创建实例的时候,需要该类存在无参构造,不然就会抛出InstantiationException该异常。所以最好还是把无参构造保留的好!(ps:如果无参构造的修饰符被修改为其他的protected private default,将会出现另一个异常java.lang.IllegalAccessException)