我有一个基础抽象类public abstract class BaseModel <T extends BaseModel<T>>.通常,我会用类似的东西扩展这个类public class OtherModel extends BaseModel<OtherModel>.对于我的一些类,我想要一个中间抽象类,这样A扩展B扩展了BaseModel.
我希望能够宣布public class EndModel extends MiddleModel<EndModel>.我设法让Eclipse变得快乐的唯一方法是,如果我声明MiddleModel为public 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> {}
Run Code Online (Sandbox Code Playgroud)
请注意,EndModel不支持该可扩展性.这是一种权衡,因为我不想写new EndModel<EndModel>(),而是new EndModel().
| 归档时间: |
|
| 查看次数: |
1827 次 |
| 最近记录: |