Java:继承泛型类并设置其类型

4

我有一个通用的链表类(Link),如下所示:

class Link<T> {
  protected T next;

  public T getNext() { return next; }
  public void setNext(T newnext) { next = newnext; }

}  // end class Link

现在,我想要另一个名为Card的类继承它。
class Card extends Link {
...
}

然而,我希望getNext()返回一个Card对象。我该怎么办?

最开始,Link类不是泛型的。但是,每次想要使用getNext()时,我必须执行转换操作。我似乎遇到了相关的空指针问题,所以我想先把这个问题解决掉。


以下解决方案运行良好。当我开始处理另一个问题时,空指针问题可能会出现 :). - Chris Chambers
1个回答

11

您可以在Card中指定Link的泛型参数类型为Card

class Card extends Link<Card>

这将Card分配给来自Link的通用类型参数T


谢谢,就这样了。我曾经很难理解这个泛型和继承的奇怪组合,现在可以完美运行了。 - Chris Chambers

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接