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

时间:2013-04-25 22:16:34

标签: java generics inheritance

我有一个通用的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()上执行强制转换。我有一个看似相关的空指针问题,所以我想清除它。

1 个答案:

答案 0 :(得分:11)

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

class Card extends Link<Card>

这会将CardT分配给通用类型参数Link