报错的原因是因为之前并无BaseService层,在new 某个对象具体的Dao时,BaseDao已经可以获取到泛型类型,BaseDao的泛型设置如下图所示,
之前BaseDao中的get或者delete方法是这样的
但是,加上BaseService层后,BaseService的实现类中引入了BaseDao,BaseDao的实现类在初始化的时候并不知道泛型类型,所以需要将Class<?> clz 这个属性提到BaseService中去,作为参数传递给BaseDao,不需要BaseDao再做处理,如下图所示
现在BaseDao中的get或者delete方法是这样的
BaseService传递参数clz给BaseDao