下面的代码让我很恼火:字符串和空指针在Java中
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
}
任何人都可以解释上述现象?
UPDATE:
上面的代码是不是事实。我实际上经历的是,我收到了NullPointerException,并追溯到toString()的调用,并且我尝试了不同的解决方法,包括声明中的投射,但它不起作用。但是在我使用分开的演员之后,我不小心删除了toString()
的通话,所以它工作。
呃......你确定'myTest' *的第三行不会抛出异常吗? – luiscubal 2012-02-10 02:13:19
对不起,我从观察的代码改变了。我会修好它。 – 2012-02-10 02:21:07