比较返回错误java的已解析整数值
我有一个genreic对象类。当我将整数添加到对象并比较它们时,它返回了错误的答案比较返回错误java的已解析整数值,java,Java,我有一个genreic对象类。当我将整数添加到对象并比较它们时,它返回了错误的答案 bsTree<Integer> tree = new bsTree<Integer>(); tree.add(6); bsTree-tree=new bsTree(); 添加(6); 然后在比较中 add(T value) { Node nodeWithData = root; System.out.println(Integer.parseInt(value.toS
bsTree<Integer> tree = new bsTree<Integer>();
tree.add(6);
bsTree-tree=new bsTree();
添加(6);
然后在比较中
add(T value) {
Node nodeWithData = root;
System.out.println(Integer.parseInt(value.toString) <= Integer.parse(nodeWithData.getContent().toString())
}
add(T值){
节点nodeWithData=root;
System.out.println(Integer.parseInt(value.toString)您打印的是与测试相反的内容。您测试currentNode
似乎缺少对toString()的调用中的(),不确定这是否是原因,或者只是需要检查的内容。好吧,不如你将实际运行的代码粘贴进去,而不仅仅是增量更新你的帖子,以期得到可以编译的东西?它不会以当前的形式编译。它也不会以我之前发表评论时的形式编译。你所做的有点像要求我们在干草堆中找到一根针,但只提供干草堆的照片,而不是干草堆本身。你会发布bNode
类吗?问题可能就在那里。你已经有了答案,但在发布你正在运行的实际代码之前,答案无法提供给你。希望你在今后如何提出一个好问题方面学到了宝贵的一课。很好,Elliott。我希望这个问题会很有趣。:-(我为现在发布这篇文章感到羞愧。
public class bsTree<T> {
private bNode root;
private bNode currentNode = root;
public bsTree()
{
root = null;
}
public bsTree(T[] anArray)
{
if(anArray==null)
{
return;
}
for(int i = 0; i<anArray.length; i++)
{
add(anArray[i]);
}
}
public void add(T value)
{
if(root == null)
{
System.out.println("Setting first node to " + value);
root = new bNode(value);
return;
}
else
{
//System.out.println("Value is = " + value);
currentNode = root;
while(currentNode != null)
{
if(Integer.parseInt(currentNode.getContent().toString()) <= Integer.parseInt(value.toString()))
{
System.out.println(value + " <= " + currentNode.getContent());
if(currentNode.getlChild() == null)
{
System.out.println("Setting left Child");
currentNode.setlChild(new bNode(value));
return;
}
else
{
System.out.println("Going left");
currentNode = currentNode.getlChild();
}
}
else
{
}
}
}
}
public static void main(String[] args)
{
bsTree<Integer> tree = new bsTree<Integer>();
tree.add(5);
tree.add(6);
tree.add(7);
tree.add(8);
tree.add(9);
}
}
if(Integer.parseInt(currentNode.getContent().toString()) <=
Integer.parseInt(value.toString()))
{
System.out.println(value + " <= " + currentNode.getContent());
if(Integer.parseInt(currentNode.getContent().toString()) <=
Integer.parseInt(value.toString()))
{
System.out.println(currentNode.getContent() + " <= " + value);