【发布时间】:2020-12-10 16:32:43
【问题描述】:
我无法在以下设计之间进行选择,因为我不知道它们在允许同一属性使用不同类型时有什么区别:
-
abstract class A<T extend G> {T:t}class BT1 extend A<T1> {}
这将继承抽象泛型类 -
abstract class A {G:t}class BT1 extend A {T1:t}
Thisd 将是变量隐藏 -
class A<T extend G> {T:t}
然后这个类将被实例化如下:new class A<T1>
- 这三种设计有什么区别?
- JPA 能否为案例 3 检索具有特定类型变量的实体?
- JPA 如何处理泛型和继承的混合?
【问题讨论】:
-
不清楚(对我来说,无论如何)在这种情况下您所说的“模板”是什么。请您详细说明“模板”的含义吗? TIA。
-
已编辑 -> 我的意思是泛型类
-
„我的意思是泛型类“——第一,帮自己一个忙。不要将 Java 的参数多态性视为“C++ 模板”。只是表面上的相似。更重要的是,当您说:“我有一些困难要在以下设计之间进行选择时,更好地了解您的“困难”对我来说很有价值”。拜托,您能否编辑您的问题以详细说明那些“困难”?请分享一些您已经尝试过的示例代码,这些示例代码暴露了不同的“困难”? TIA。
-
感谢您的编辑 :) — „3。
class A<T extend G> {T:t}...这将是泛型类实例化“ - (JLS) 正确的术语是:Generic class declaration。当您实例化一个泛型类时,您所获得的 JLS 术语是“parameterized type”。您的代码示例不包含特定参数化类型的任何实例化。只有声明。 -
已编辑,第三类要实例化
标签: java templates jpa generics inheritance