我是Java的新手,因此这些问题对某些人来说可能看起来微不足道。 我有一个Node类的实现,它使用通用数据类型T.我想实现一个可比较的比较两个T实例。
这是我的代码。
private class Node<T> implements Comparable<T> {
private T data;
private Node next;
public Node(T data){
this.data = data;
this.next = null;
}
@Override
public int compareTo(T other) {
if(this.data == other) return 0;
if(this.data < other) return 1;
if(this.data > other) return -1;
}
}
此代码无法编译,因为Java会抛出错误的操作数类型错误。编写compareTo函数的正确方法是什么。任何帮助表示赞赏。
答案 0 :(得分:4)
首先,您需要T
才能在它们之间进行比较。你想要的基本上只是
private class Node<T extends Comparable<T>> implements Comparable<Node<T>> {
...
@Override
public int compareTo(Node<T> other) {
return data.compareTo(other.data);
}
}