java - Java中用抽象类扩展抽象泛型类

标签 java generics

我有一个基本抽象类public abstract class BaseModel <T extends BaseModel<T>> 。通常,我用 public class OtherModel extends BaseModel<OtherModel> 之类的东西扩展这个类。 。对于我的一些类,我想要一个中间抽象类,这样 A 扩展 B 扩展 BaseModel。

我希望能够声明public class EndModel extends MiddleModel<EndModel> 。我设法让 Eclipse 满意的唯一方法是声明 MiddleModelpublic abstract class MiddleModel<T extends BaseModel<T>> extends BaseModel<T> ,但这看起来很难看,现在我必须在将变量声明为 MiddleModel 的任何地方添加一个类型。 ,即使我实际上并不关心它是什么类型。有更好的方法吗?

最佳答案

如果您想在 MiddleModel 中添加更多功能(这取决于它的泛型类型),请像这样声明它:

public abstract class BaseModel <T extends BaseModel<T>> {}

public abstract class MiddleModel <T extends MiddleModel<T>> extends BaseModel<T> {}

public class EndModel extends MiddleModel<EndModel> {}

请注意,EndModel 不支持该扩展性。这是一个权衡,因为我不想写 new EndModel<EndModel>()而是new EndModel() .

关于java - Java中用抽象类扩展抽象泛型类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20357697/

相关文章:

JAVA - 最合适的数据结构

java - 那些 java 沙盘游戏如何跟踪这么多粒子?

java - 使用java的mongo驱动程序保存接口(interface)对象列表

java - 是否可以使用 Sikuli 进行 JUnit 测试并在失败时截取屏幕截图?

java - 是否需要反射才能动态地将正确的通用适配器应用于我的对象

c# - 将 Expression<T, string>> 转换为 Expression<T, bool>>

c# - 使用 IEnumerable<T> 创建通用集合的通用类

java - 输入类型文件无法在 android webview 中使用浏览选项?

java - 抽象数据类型,按列表中的特定变量对对象进行排序

java - 需要有关创建通用数组的帮助