Chr*_*ers 4 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
Run Code Online (Sandbox Code Playgroud)
现在,我希望另一个名为Card的类继承此.
class Card extends Link {
...
}
Run Code Online (Sandbox Code Playgroud)
但是,我希望它为getNext()返回一个Card对象.我该怎么做呢?
最初,Link类不是通用的,但是每次我想使用它时我都必须在getNext()上执行强制转换.我有一个看似相关的空指针问题,所以我想清除它.
rge*_*man 11
您可以指定泛型参数类型Link是Card在Card:
class Card extends Link<Card>
Run Code Online (Sandbox Code Playgroud)
这种分配Card到泛型类型参数T的Link.
| 归档时间: |
|
| 查看次数: |
104 次 |
| 最近记录: |