![](/img/trans.png)
[英]Is it possible to simultaneously and generically subclass both a bounded generic class and a generic interface?
[英]generic interface with bounded generic interface
说我有泛型接口:
public interface MyContainer<E>{
E someMethod();
}
现在,我有另一个接口,希望它像这样:
public interface MyService<T extends MyContainer<E>>{
// someMethod goes here
}
它当然不会编译,只会这样编译:
public interface MyService<E,T extends MyContainer<E>>{
// someMethod goes here
}
但我不喜欢它,因为MyService接口并不关心E,它只关心其类型参数扩展了MyContainer。 有什么想法如何解决吗?
但我不喜欢
开始喜欢它。
必须在引用它们之前声明类型参数,就像在使用它们之前声明变量一样。
如果您关心E
的类型,则必须声明它。 如果用T extends MyContainer<E>
引用MyService
T extends MyContainer<E>
则MyService
接口确实关心E
如果您的界面根本不关心E
是什么,那么您可以使用无界通配符。
public interface MyService<T extends MyContainer<?>>
但是,此接口的每个实现都需要完全像这样重新声明T
或提供完全满足此约束的类型参数。 您将无法摆脱?
。
我可以看到,声明E
并按原样使用它是最好的解决方案。 不必键入额外的E,
没什么大问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.