【发布时间】:2018-07-13 07:50:21
【问题描述】:
我有一个名为 IDedObject 的接口,我正在创建一个链表类,该类使用扩展 IDedObject 接口的泛型。在linkedList 类中,我有一个函数尝试根据它的数据查找给定项目,然后返回该项目。我收到一个错误提示
不兼容的类型。必需:任何类型。找到: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。
谢谢。
【问题讨论】:
-
为什么要扩展接口?实现它,这些函数什么都不做,因为它们没有任何身体可以做任何事情
-
@BlooB 我有另一个实现接口的类。在 main 函数中,我需要使用我创建的 LinkedList 并用实现接口的对象填充它。
-
发布 main() 方法,以及有关错误的更多详细信息。
-
对
curNode使用原始类型Node并作为getNext()的返回类型可能与您的错误有关。 -
我解决了这个问题。请看下面我的回答。谢谢你们的帮助。
标签: java generics interface linked-list return