Java 扩展T和SomeInterface<;T>;在爪哇
我想创建一个接受两个参数的类。一个应该简单地键入为T,另一个应该键入为扩展了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
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中完成:但是有没有办法绕过这个来获得同样的效果呢?