我遇到的情况是,我有多个 DAO 类,用于从 hibernate 查询中获取结果,我想在每个 DAO 中添加计数作为记录计数的附加列,并从泛型中寻找解决方案。类似的东西。
class GenericResult extends <DAO as generic parameter> {
Long count;
}
这样我就可以替换 DAO 并在任何我想要的地方重用 GenricResult。
entityManager.createNativeQuery(qlString, SpecificDao.class)
我想将上面的行替换为
entityManager.createNativeQuery(qlString, GenricResult.class)
最佳答案
泛型只是提供了一种省略显式强制转换的方法。
如果你不能用类型转换来做某事,那么你也不能用泛型来做这件事。
您无法通过强制转换来做到这一点,因此您也无法通过泛型来做到这一点。
<小时/>我会质疑继承是否真的是你想要的。另一种选择是组合:
class GenericResult<D> {
Long count;
D getDao();
}
它提供了对 DAO 的访问,但是 GenericResult
不是 DAO,这对我来说似乎更正确。
关于java - java中是否可以将父类设为Generic?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60072408/