我想创建一个带两个参数的类。一个应该简单地输入为T.另一个应该被输入为扩展T和SomeInterface<T>
的东西。当我用
public class SomeClass<T, S extends SomeInterface<T> & T>
然后Java抱怨
“类型T不是接口;不能将其指定为有界参数”
如果我改为尝试使用
为S创建一个接口public interface TandSomeInterface<T> extends SomeInterface<T>, T
然后Java抱怨
“不能将类型参数T称为超类型”
有没有办法在Java中这样做?我想你可以用C ++做到这一点......?
答案 0 :(得分:3)
您无法创建扩展类型参数T
的接口,因为没有合同可以保证T
成为接口。当然,不允许扩展类的接口。
答案 1 :(得分:3)
如果扩展接口也可以这样做:
public class SomeClass<T extends I, S extends SomeInterface<T> & I>
但也许这不是你想要的......