Java绑定不匹配错误,但我扩展了可比较的接口
我正在尝试实现一个二叉树,它将堆作为节点。但我不明白为什么会出现这个错误 首先,这些是类别: 二叉树:Java绑定不匹配错误,但我扩展了可比较的接口,java,Java,我正在尝试实现一个二叉树,它将堆作为节点。但我不明白为什么会出现这个错误 首先,这些是类别: 二叉树: public class MyBinarySearchTree<E extends Comparable<E>> implements Serializable{...} 公共类MyBinarySearchTree实现可序列化的{…} 堆: 公共类MyHeap实现了可比较的{…} 价值发生: public class ValueOccurance<E ext
public class MyBinarySearchTree<E extends Comparable<E>> implements Serializable{...}
公共类MyBinarySearchTree实现可序列化的{…}
堆:
公共类MyHeap实现了可比较的{…}
价值发生:
public class ValueOccurance<E extends Comparable<E>> implements Comparable<E> {
private E data;
private int occur;
@Override
public int compareTo(E o) {
return data.compareTo(o);
}
}
公共类ValueOccurance实现可比较{
私人电子数据;
私人投资发生;
@凌驾
公共内部比较(E/o){
返回数据。比较到(o);
}
}
所以,问题是:大体上我不能创建x和y
MyHeap<ValueOccurance<Integer>> x = new MyHeap<>();
MyBinarySearchTree<ValueOccurance<Integer>> y = new MyBinarySearchTree<>();
MyHeap x=newmyheap();
MyBinarySearchTree y=新的MyBinarySearchTree();
你能告诉我哪里是我的错吗?还有一点解释
关于。
值发生率
是可比的
,而不是可比的
。i、 e.它不能比较自身的实例。MyHeap
和valueoccurrence
需要与自身的实例相比较,而不是与e
的实例相比较
请注意以下代码与您的代码(下面突出显示)之间的差异:
公共静态类MyBinarySearchTree实现可序列化{};
公共静态类MyHeap实现了{
^^^^^^^^^
公共整数比较(MyHeap其他){
返回0;
}
}
公共类ValueOccurance实现了可比性{
^^^^^^^^^^^^^^^^^
私人电子数据;
私人投资发生;
@凌驾
公共国际比较(价值发生o){
^^^^^^^^^^^^^^^^^^^
返回数据。比较(o.data);
^^^^^^
}
}
公共静态void main(字符串[]args)引发IOException
{
MyHeap x=新的MyHeap();
MyBinarySearchTree y=新的MyBinarySearchTree();
}
值发生率
可比不可比可比。i、 e.它不能比较自身的实例。MyHeap
也存在同样的问题-应该实现可比较的
MyHeap<ValueOccurance<Integer>> x = new MyHeap<>();
MyBinarySearchTree<ValueOccurance<Integer>> y = new MyBinarySearchTree<>();
public static class MyBinarySearchTree<E extends Comparable<E>> implements Serializable{ };
public static class MyHeap<E extends Comparable<E>> implements Comparable<MyHeap<E>>{
^^^^^^^^^
public int compareTo(MyHeap<E> other) {
return 0;
}
}
public class ValueOccurance<E extends Comparable<E>> implements Comparable<ValueOccurance<E>> {
^^^^^^^^^^^^^^^^^
private E data;
private int occur;
@Override
public int compareTo(ValueOccurance<E> o) {
^^^^^^^^^^^^^^^^^^^
return data.compareTo(o.data);
^^^^^^
}
}
public static void main(String[] args) throws IOException
{
MyHeap<ValueOccurance<Integer>> x = new MyHeap<>();
MyBinarySearchTree<ValueOccurance<Integer>> y = new MyBinarySearchTree<>();
}