public class Node<X> {
private X value;
private Node link;
public X getValue() {
return value;
}
public Node getLink() {
return link;
}
}
public X get(int index)
{
if (index >= 0)
{
Node i = head;
int c = 0;
while (c < index)
{
i = i.getLink();
c++;
}
return i.getValue();
}
else
{
throw new ArrayIndexOutOfBoundsException();
}
}
当我编译。它说不兼容的类型,为什么呢? getValue是类型X,get返回X,和i.getValue();是一个X,但显示不兼容的类型错误,我缺少什么?
答案 0 :(得分:3)
这一行:
Node i = head;
需要
Node<X> i = head;
否则getValue()
会返回Object
。
另外,在Node
课程中:
private Node<X> link;
和
public Node<X> getLink() {