小编Eri*_*son的帖子

在同类中实现同一类的基类中使用泛型的好处

我最近在代码中遇到了这个我没写过的场景,虽然这种方法可能有一些设计上的好处,但我似乎无法从我自己的大脑中挤出这个理由.所以在我走之前看起来很愚蠢之前,我希望能在这里得到一些反馈.

服务界面是这样的:

public interface Service {...}
Run Code Online (Sandbox Code Playgroud)

然后,添加对Service接口的通用引用的基类,其中T扩展了Service,但是整个基类也实现了接口.像这样的东西:

public class ServiceBase<T extends Service> implements Service {...}
Run Code Online (Sandbox Code Playgroud)

你为什么要这样做?我注意到在实践中,ServiceBase的扩展始终使用与正在声明的类相同的类名; 所以这里没有任何神奇的多态效益.像这样的东西:

public class MyService extends ServiceBase<MyService> {...}
Run Code Online (Sandbox Code Playgroud)

并且,MyService类永远不是泛型的容器(例如,我不相信这是发出某种自包含列表的信号,其中MyService可以包含MyServices列表).

关于为什么有人会这样做的任何想法/想法?

java generics

6
推荐指数
1
解决办法
205
查看次数

标签 统计

generics ×1

java ×1