Следующий код сводит меня с ума:
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()
, чтобы он работал.