下面的代碼讓我很惱火:字符串和空指針在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