您的位置:首页 > 编程语言 > Java开发

java.lang.InstantiationException

2015-05-29 23:49 260 查看
could not initializationDammanage:com.ibatis.dao.client.DaoException: Error whileconfiguring DaoManager.  

Cause: com.ibatis.dao.client.DaoException: Error configuringDAO.  

Cause: java.lang.InstantiationException:com.finance.ProductDaoImpl

Caused by: java.lang.InstantiationException:com.finance.ProductDaoImpl

Caused by: com.ibatis.dao.client.DaoException: Error configuringDAO.  

Cause: java.lang.InstantiationException:com.finance.ProductDaoImpl

Caused by: java.lang.InstantiationException:com.finance.ProductDaoImpl

 

java.lang.InstantiationException从字面意思上来看是说不能实例化ProductDaoImpl类,出现这种异常的原因通常情况下是由于要实例化的对象是一个接口或者是抽象类等无法被实例化的类。但是在这次的错误中却是个例外,这个错误是由持久类Product引发的,ProductDaoImpl类是我用来查询结果的操作方法集合,它继承了HibernateTemplateDao类,实现了ProductDao接口,这个问题困扰了本人很久,经过网络上的查询得到启发:发现产生这个错误的原因是持久类Product中没有不带参数的构造方法,因为iBATIS在对象建立中,会使用不带参数的构造函数来建立对象,而现在我的Product类中只有一个带参数的构造方法以及一系列的getter/setter方法。只需要在Product类中加入一个不带参数的构造方法,该方法不必执行任何操作,就像默认的构造方法一样。在Hibernate中就有明确的要求:每一个持久化类都必须带一个不带参数的构造方法。

这里说明一点,如果你在类中声明了带参数的构造函数,会自动覆盖无参数的构造函数,这样系统就无法调用无参数的构造函数实例化类,所以会出现这种错误。

 

这个问题在使用类反射实例化某个对象时,如果这个对象不包含无参数的构造函数,也会出现这个错误,解决办法是在这个要通过类反射实例化的这个类中添加一个空的无参数构造函数就可以了.

================================================

在开发中遇到的一个问题,在网上搜索到的答案,地址:http://blog.sina.com.cn/s/blog_60dadc490100el9o.htm

希望能与更多的java程序员共同学习

联系扣扣:2531977855l
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: