Java 扩展T和SomeInterface<;T>;在爪哇

Java 扩展T和SomeInterface<;T>;在爪哇,java,generics,multiple-inheritance,extends,Java,Generics,Multiple Inheritance,Extends,我想创建一个接受两个参数的类。一个应该简单地键入为T,另一个应该键入为扩展了T和SomeInterface的内容。当我尝试这样做的时候 public class SomeClass<T, S extends SomeInterface<T> & T> 公共类SomeClass 然后Java抱怨 “类型T不是接口;不能将其指定为有界参数” 如果我尝试用 public interface TandSomeInterface<T> extends Som

我想创建一个接受两个参数的类。一个应该简单地键入为T,另一个应该键入为扩展了T和
SomeInterface
的内容。当我尝试这样做的时候

public class SomeClass<T, S extends SomeInterface<T> & T>
公共类SomeClass
然后Java抱怨

“类型T不是接口;不能将其指定为有界参数”

如果我尝试用

public interface TandSomeInterface<T> extends SomeInterface<T>, T
公共接口TandSomeInterface扩展了SomeInterface,T 然后Java抱怨

“无法将类型参数T引用为超类型”


在Java中有什么方法可以做到这一点吗?我认为你可以在C++中……

< p>你不能创建一个扩展了类型参数<代码> t>代码>的接口,因为没有契约可以保证<代码> t/COD>成为接口。当然,扩展类的接口是不允许的。

如果您也扩展了一个接口,则此操作也有效:

public class SomeClass<T extends I, S extends SomeInterface<T> & I>
公共类SomeClass

<>但是,这可能不是你想要的……< /P>注意C++模板比java泛型强大得多。仅仅因为它可以在C++中完成,并不意味着它可以在JavaAdvices中完成:但是有没有办法绕过这个来获得同样的效果呢?