涉及的类 :ClientDaoImpl
涉及的接口:ClientDao
类ClientDaoImpl extends 类BaseHibernateDaoSupport ,在ClientDaoImpl 类中重写了类
BaseHibernateDaoSupport的findByPage()这个方法
然后service包中:
public class ClientManagerImpl implements ClientManager
{
private ClientDao clientDao; (*)
public void xxx()
{
clientDao.findByPage();//这里报错,因为找不到方法findByPage()
}
}
把(*)号处代码改为private ClientDaoImpl clientDao; 就不会报错了,原因是findByPage是重
写的类BaseHibernateDaoSupport的,所以在接口ClientDao没有此方法,进而报错。
我这么用的目的是想在service层中调用分页查询的方法,用的SSH框架,要想用到findByPage()方法又,难道非要在ClientManagerImpl类new 一个ClientDaoImpl 类吗,这不就违背了依赖注入了吗,请问有什么解决办法呢?
还有一个解决办法就是,因为已知你注入的类是:ClientDaoImpl,所以可以在调用的时候进行强制类型转换,但是不建议这样用:
[code="java"]public class ClientManagerImpl implements ClientManager
{
private ClientDao clientDao; (*)
public void xxx()
{
[b]((ClientDaoImpl)clientDao).[/b]findByPage();//这里报错,因为找不到方法findByPage()
}
}[/code]
ClientDaoImpl 这个类实现的是ClientDao接口吧
你要在实现类中新增方法,肯定要到DAO层的接口中新增方法findByPage的声明。