[英]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.