繁体   English   中英

绑定不匹配错误Java泛型

[英]Bound Mismatch error java generics

得到错误

绑定不匹配:BinarySearchTree类型的通用方法insertData(TreeNode,E)不适用于参数(TreeNode,T)。 推断的类型T不能有效替代有界参数>

以下代码有什么问题?

public class BinarySearchTree<T extends Comparable<? extends T>>
                                                          implements Tree<T> {

private TreeNode<T> root;

@Override
public void insert(T data) {
    // TODO Auto-generated method stub
    root = insertData(root,data);
}

@Override
public void insert(TreeNode<T> node) {
    // TODO Auto-generated method stub

}

@Override
public T remove(T data) {
    // TODO Auto-generated method stub
    return null;
}

@Override
public boolean hasNode(T data) {
    // TODO Auto-generated method stub
    return false;
}

private <E extends Comparable<? super E>>
        TreeNode<E> insertData(TreeNode<E> node, E data)
{
    if(node == null)
    {
        node = new TreeNode<E>(data);
        //return node;
    }
    else if(node.data.compareTo(data) <= 0)
        node.left = insertData(node.left,data);
    else
        node.right = insertData(node.right,data);


    return node;
}

}

public class TreeNode<T> {

    public TreeNode<T> left;
    public TreeNode<T> right;
    public T data;

    public TreeNode(T data) {
        this.left = null;
        this.right = null;
        this.data = data;
    }
}

如果我理解你的问题,这

class BinarySearchTree<T extends Comparable<? extends T>> implements Tree<T>

应该

class BinarySearchTree<T extends Comparable<T>> implements Tree<T>

insertData可能insertData应该使用类型T或更改

<E extends Comparable<? super E>>

<E extends Comparable<E>>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM