Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/352.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
可以在java中使父类通用吗?_Java_Hibernate_Generics - Fatal编程技术网

可以在java中使父类通用吗?

可以在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) 泛型只是提供了一种省略显式类型转换的方法 如

在这种情况下,我使用多个DAO类从hibernate查询中获取结果,我想在每个DAO中添加count作为记录计数的附加列,并从泛型中寻找解决方案。差不多

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();
}