Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/393.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java绑定不匹配错误,但我扩展了可比较的接口_Java - Fatal编程技术网

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<>();
}