Java 新运算符返回null

Java 新运算符返回null,java,vaadin,Java,Vaadin,好吧,这听起来太疯狂了。。以下代码中发生了非常非常奇怪的事情: treeTable = new TreeTable(); System.out.println("table: " + treeTable); if(treeTable == null) { System.out.println("omg how ?!"); } …以下是输出: table: null 就这些!这不是假的 我该拿这个怎么办?在调试器中,我看到null值在treeTable=new treeTable(

好吧,这听起来太疯狂了。。以下代码中发生了非常非常奇怪的事情:

treeTable = new TreeTable();

System.out.println("table: " + treeTable);

if(treeTable == null) {
    System.out.println("omg how ?!");
}
…以下是输出:

table: null
就这些!这不是假的

我该拿这个怎么办?在调试器中,我看到
null
值在
treeTable=new treeTable()之后立即分配给
treeTable
。 更奇怪的是第二个println没有被执行。。。 我在爪哇真的那么差劲吗?这怎么会发生呢


提前感谢

表格的
toString

@Override
public String toString() {
    return alignment;
}
其中,
校准
在初始化后为空。

TreeTable
扩展了
Table

对于初学者来说,它甚至不需要编译。谁能证实你的胡言乱语?如果只是简单地插入到
main
方法中,您可以确保
treeTable
不会为
null
。正如Marko所说,除非您有更多未显示的代码,否则将无法编译。您是否有一个toString方法被重写,并偶然返回null?我99%肯定jervine10用
toString
的重写击中了要害。编写复制此结果的代码当然很容易。您的treetable变量以前被指定为treetable吗?打印
null
和实际为null之间有区别。下次,要检查null,请使用
System.out.println(“表:”+(treeTable==null))嗯,这不是解释了很多吗。
toString()
的一个多么可怕的实现。。。但这是一个很好的陷阱。好吧,为我的愚蠢道歉。。我试图找到空ptr异常的原因,这就是我相信它的原因。。谢谢