我对泛型没有太多的经验,正在努力掌握使用它们的诀窍。在将其用于处理整数之后,我尝试使用泛型来使其工作,但我一直收到以下错误
必需: genericTree找到: int原因:实际参数int无法通过方法调用转换转换为genericTree,其中T是类型变量:T扩展在类genericTree中声明的对象genericTree.java:83:错误:类genericTree中的方法add不能应用于给定类型;
我知道它告诉我什么,但我不确定如何修复它。我已经尝试了不同的方法,但似乎都不适合我。
下面是我的完整代码:
import java.util.*;
class genericTree<T>{
private Node root;
public List <genericTree<T>> list;
private class Node
{
Node left;
Node right;
T data;
Node(T newData)
{
left = null;
right = null;
data = newData;
}
}
genericTree()
{
root = null;
}
public boolean breadthSearch(genericTree<T> searchValue)
{
Queue<Node> queue = new LinkedList<Node>() ;
if (this.root == null)
return false;
queue.clear();
queue.add(root);
while(!queue.isEmpty())
{
Node node = queue.remove();
System.out.print(node.data + " ");
if(node.data == searchValue)
return true;
if(node.left != null)
queue.add(node.left);
if(node.right != null)
queue.add(node.right);
}
return false;
}
public void add(genericTree<T> data)
{
list.add(data);
}
public void display()
{
display(root);
}
private void display(Node node)
{
if(node==null)
return;
display(node.left);
System.out.println(node.data + " ");
display(node.right);
}
public static void main(String[] args)
{
genericTree bst = new genericTree();
bst.add(10);
bst.add(5);
bst.add(6);
bst.add(13);
bst.add(15);
bst.add(8);
bst.add(14);
bst.add(7);
bst.add(12);
bst.add(4);
bst.breadthSearch(6);
}
} 谢谢你的帮助
发布于 2013-12-12 06:10:44
看起来你打算做以下事情
public boolean breadthSearch(genericTree<T> searchValue)是这样的
public boolean breadthSearch(T searchValue)您可能还希望确保您的genericTree<T>是genericTree<int>
genericTree<int> bst = new genericTree<int>();https://stackoverflow.com/questions/20530924
复制相似问题