下面的代码让我很生气:
private String blahBlah(){
return null;
}
@Test
public void myTest(){
System.out.println(blahBlah()); //Good, output "null"
Object obj = blahBlah();
System.out.println(obj.toString()) //Good as above
//System.out.println(blahBlah().toString()); //Bad, NullPointerException
//System.out.println(((Object)blahBlah()).toString()); //Bad as above
}
谁能解释一下上述行为吗?
更新:
上面的代码不是事实。我实际经历的是,我收到了 NullPointerException 并且我回溯到 toString() 的调用,并且我尝试了不同的解决方法,包括语句内转换,但它不起作用。但是在我使用单独的强制转换之后,我不小心删除了 toString() 调用,因此它可以工作。
最佳答案
简单。
您可以打印null
;您只是无法取消引用 null
值。
关于java - Java中的字符串和空指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9221826/