对象实例化错误

Posted 算法与编程之美

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了对象实例化错误相关的知识,希望对你有一定的参考价值。

1 问题

在项目开发过程中如果你的项目中出现如下情况:则说明遇到对象实例化报错的问题。

2 方法

  1. .先分析报错原因,报错时,一定要看主要问题,对于遇到java.lang.InstantiationException实例化异常一般遇到这类问题,有两种情况。

  2. .第一种,要实例化的对象是一个接口或者是抽象类等无法被实例化的类。

解决方法就是在使用反射的机制时,由于抽象父类中的构造方法不是public的,所以导致异常的出现,其实很简单,只要将需要反射的类中的相应构造方法改为public即可。

   (3).这个异常多半是由于通过反射在实例化的时候,对应的类里面覆盖了无参构造而导致无法实例化,由于创建类的时候,默认有一个无参构造,前提是没有其他构造方法,如果没有明确的将无参构造写出来,该类就是缺少无参构造了,也就导致了无法实例化。

解决方法就是建议在创建类的时候,建议保留(显式的写出来)无参构造。

3 结语

   总结原因:遇到第一种情况只需将需要反射的类中的相应构造方法改为public就行了。而遇到第二种则要通过反射来为某个类创建实例的时候,需要该类存在无参构造,不然就会抛出InstantiationException该异常。所以最好还是把无参构造保留的好!(ps:如果无参构造的修饰符被修改为其他的protected private default,将会出现另一个异常java.lang.IllegalAccessException)

以上是关于对象实例化错误的主要内容,如果未能解决你的问题,请参考以下文章

spring ioc容器之Bean实例化和依赖注入

对象实例化错误

看完这篇自己都可以写Spring IOC 容器 Bean 对象实例化--乐字节java

Spring插入错误无法实例化[java.util.Map]:指定的类是一个接口

Java方法内创建对象实例后,啥时候释放内存(引

Spring三种实例化Bean的方式