【发布时间】:2015-12-17 21:52:25
【问题描述】:
我有几个通用类:
public interface Data<E> {}
public interface Clonable<E extends Clonable<E>> {}
public interface NaturalNumberInterface extends Data<NaturalNumberInterface> {}
public class NaturalNumber implements NaturalNumberInterface {}
public interface SetInterface<E extends Data<E>> extends Clonable<SetInterface<E>> {}
public class Set<E extends Data<E>> implements SetInterface<E> {}
当我尝试创建 Set Set<NaturalNumber> s=new Set<NaturalNumber>(); 的新实例时,编译器会说:
NaturalNumber不能有效替代Set<E>类型的类型参数<E extends Data<E>>
也许你能帮我找到错误,因为我花了很长时间没有找到解决方案。
【问题讨论】:
-
Data是如何定义的? -
还有如何定义 SetInterface。请至少提供编译代码
-
由于 OP 喜欢我的回答,看来我的假设是正确的。我编辑了问题以反映它。
List和ListInterface对于这个问题似乎是不必要的,所以我删除了它们。
标签: java generics inheritance interface multiple-inheritance