【发布时间】:2019-09-18 00:49:05
【问题描述】:
我有以下示例代码,并在最后一行产生“类型参数不在其范围内”错误。 C/D 类通过继承重用了 A/B 中的大量代码。我如何将 Y 类定义为没有错误并且仍然使用 D 类作为类型参数?有没有一种方法可以定义 D 类以使用 A.B 但仍然具有 D 类的签名扩展 S 用于 Y 类?
public abstract class S<E extends S<E>> extends somethingElse {}
public abstract class R<E extends S<E>> {}
public class A extends Z {
public class B extends S<B> {
}
}
public class C extends A {
public class D extends A.B {
}
}
public class X extends R<B> {} // OK
public class Y extends R<D> {} // Error: Type parameter D is not within its bound; should extends S<D>
任何帮助将不胜感激。
【问题讨论】:
标签: java inheritance inner-classes type-parameter