可以在java中使父类通用吗?
在这种情况下,我使用多个DAO类从hibernate查询中获取结果,我想在每个DAO中添加count作为记录计数的附加列,并从泛型中寻找解决方案。差不多可以在java中使父类通用吗?,java,hibernate,generics,Java,Hibernate,Generics,在这种情况下,我使用多个DAO类从hibernate查询中获取结果,我想在每个DAO中添加count作为记录计数的附加列,并从泛型中寻找解决方案。差不多 class GenericResult extends <DAO as generic parameter> { Long count; } 我想把上面的线换成 entityManager.createNativeQuery(qlString, GenricResult.class) 泛型只是提供了一种省略显式类型转换的方法 如
class GenericResult extends <DAO as generic parameter> {
Long count;
}
我想把上面的线换成
entityManager.createNativeQuery(qlString, GenricResult.class)
泛型只是提供了一种省略显式类型转换的方法 如果你不能用casting做一些事情,你也不能用泛型做 你不能用casting来做这件事,所以你不能用泛型来做
我会质疑继承是否真的是你想要的。另一种选择是组成:
class GenericResult<D> {
Long count;
D getDao();
}
class GenericResult{
长计数;
D getDao();
}
它提供了对DAO的访问,但是
GenericResult
不是DAO,这对我来说似乎更正确。No.@AndyTurner,您认为实现这一点的任何替代方法?为什么您认为扩展特定DAO类会有用?最后您可以做的是,我希望返回一个计数以及过滤器查询的结果。所以,当where子句返回2条记录时,我希望返回2作为记录的计数,我认为拥有一个可重用的泛型类更好,这样我就不必修改太多代码,否则现在我必须为每个DAO创建每个GnericResult类
class GenericResult<D> {
Long count;
D getDao();
}