使用compareTo()和泛型以及LinkedList和sort时遇到java问题
我试图创建一个SortedList类来扩展LinkedList类,两者之间的唯一区别是SortedList有一个方法来按顺序插入它所持有的内容
public class SortedList<T> extends LinkedList<T> implements Iterable<T> {
// Class variables and constructor
public void insert(T objectToAdd){
Node<T> newNode = new Node<>(objectToAdd);
Node<T> currentNode = head.getNext(); // Head node is a single sentinel node, so we always need to start comparing from its next.
if (objectToAdd.compareTo(currentNode.getPayload()) == -1){
// Insert and setup node links.
} else if (... rest of here){
}
}
我遇到的问题是使用比较器时出现以下错误:
http://puu.sh/vxKxv/c9ee91d54c.png
下面是节点类
public class Node<T>{
// Class Variables
private final T data;
public int index;
private Node<T> next;
private Node<T> prev;
public Node(T data) {
this.payload = payload;
this.next = null;
this.prev = null;
}
public void setNext(Node<T> newNode) {
this.next = newNode;
}
public void setPrev(Node<T> newNode) {
this.prev = newNode;
}
public Node<T> getNext() {
return this.next;
}
public Node<T> getPrev() {
return this.prev;
}
public T getData() {
return this.data;
}
}
如果你需要我发布任何其他课程,请告诉我
这件事耽搁了一段时间,有人能帮忙吗
# 1 楼答案
T不是一个具体的类型,因此编译器只知道它在对象类中定义了对象。如果有人制作SortedList,它将没有compareTo方法,因此无法工作。您需要确保T将包含compareTo方法。最简单的方法是
我也认为最好检查一下
因为它给了你反对添加的关系<;当前节点。获取有效负载()。同样,可比接口也不能保证它是-1。它说: