java - java中是否可以将父类设为Generic?

标签 java hibernate generics

我遇到的情况是,我有多个 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/

相关文章:

java - 没有用于 Tomcat 的实体管理器的持久性提供程序

java - 与 Hibernate 4.3.1 兼容的 Javassist 版本是什么

c# - 如何创建具有动态对象类型的通用列表

java - Jackson 将类中所有空字符串反序列化为 null

java - hibernate 当前日期不工作

delphi - 类标题中的关键字 `constructor` 是什么意思?

java - 泛型中具有两个菱形括号的方法是什么意思?

java - Android ShowcaseView 用法 - 无法将其导入到我的项目中

java - 打印 JUnit 测试的输出

java.lang.NoClassDefFoundError : com/fasterxml/jackson/core/JsonFactory