为了账号安全,请及时绑定邮箱和手机立即绑定

Java 使用内部类类型扩展类

Java 使用内部类类型扩展类

DIEA 2023-08-04 15:51:15
我有以下示例代码,并在最后一行产生“类型参数不在其范围内”错误。C/D 类通过继承重用了 A/B 中的大量代码。我如何定义 Y 类才能不出现错误并仍然使用 D 类作为类型参数?有没有一种方法可以定义类 D 以使用 AB,但仍然具有 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> {}  // OKpublic class Y extends R<D> {}  // Error: Type parameter D is not within its bound; should extends S<D>任何帮助,将不胜感激。
查看完整描述

1 回答

?
饮歌长啸

TA贡献1951条经验 获得超3个赞

要编译它,您可以更改E extends S<E>E extends S<? super E>

public abstract class R<E extends S<? super E>> {}

如果没有有界通配符,D则扩展S<B>而不是S<D>.


查看完整回答
反对 回复 2023-08-04
  • 1 回答
  • 0 关注
  • 67 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信