好吧,这听起来很疯狂..东西非常非常,非常奇怪在下面的代码正在发生的事情:新的运营商返回null
treeTable = new TreeTable();
System.out.println("table: " + treeTable);
if(treeTable == null) {
System.out.println("omg how ?!");
}
..和这里是输出:
table: null
就是这样!这不是假的!
我该怎么处理这件事?在调试器中,我看到null
的值在treeTable = new TreeTable();
之后立即分配给treeTable
。 即使陌生人是第二个println不执行... 我真的是非常糟糕,在Java中跛脚?这怎么会发生?
在此先感谢
对于初学者,这甚至不编译。任何人如何验证你的疯狂索赔?如果简单插入到'main'方法中,可以确定'treeTable'不会是'null'。 – 2014-10-06 12:41:04
正如Marko所说,除非你有更多的代码没有显示给我们,否则这将不会被编译。你有没有重写toString方法,偶然返回null? – jervine10 2014-10-06 12:42:15
我99%确定jervine10已经用'toString'覆盖了头部。编写重现此结果的代码当然很容易。 – 2014-10-06 12:43:05