Java如何返回扩展接口

时间:2018-02-02 18:40:50

标签: java generics interface linked-list return

我有一个名为IDedObject的接口,我正在创建一个使用扩展IDedObject接口的泛型的链表。在linkedList类中,我有一个函数,它试图根据它的数据查找给定的项目,然后返回该项目。我收到一条错误

  

不兼容的类型。必需:AnyType。找到:IDedObject

这就是我的代码:

接口:

public interface IDedObject {
    public int getID();
    public void printID();
}

链表:

public class singlyLinkedList<AnyType extends IDedObject>  {

    public Node<AnyType> endMarker;
    public Node<AnyType> beginMarker;

    AnyType findID(int ID){
        Node curNode = beginMarker;
        while(curNode.getNext() != endMarker){
            if (curNode.getData().getID() == ID){
                return curNode.getData();
            }
        }
        return null;
    }
}

class Node<AnyType extends IDedObject>{
    public Node(AnyType d, Node<AnyType> n){
        data = d;
        next = n;
    }

    public Node getNext(){
        return next;
    }

    public AnyType getData() {
        return data;
    }

    public AnyType data;
    private Node<AnyType> next;

    private int theSize;
}

我感谢任何帮助。它是家庭作业,所以我需要使用扩展IDedObject的泛型。

感谢。

1 个答案:

答案 0 :(得分:1)

我通过更改

解决了问题
Node curNode = beginMarker;

Node<AnyType> curNode = beginMarker;

在LinkedList类的findID函数中。不知道我是怎么错过的。