我收到了一个不兼容的类型错误?

时间:2014-03-18 06:13:38

标签: java list hyperlink

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,但显示不兼容的类型错误,我缺少什么?

1 个答案:

答案 0 :(得分:3)

这一行:

   Node i = head;

需要

   Node<X> i = head;

否则getValue()会返回Object

另外,在Node课程中:

private Node<X> link;

public Node<X> getLink() {