StringBuffer sb=null;
// Some more logic that conditionally assigns value to the StringBuffer
// Prints Value=null
System.out.println("Value="+sb);
// Throws NullPointerException
System.out.println("Value=" + sb != null ? sb.toString() : "Null");
Die Lösung für dieses Problem besteht darin, den ternären Operator in Klammern einzuschließen:
// Works fine
System.out.println("Value=" + (sb != null ? sb.toString() : "Null"));
Wie ist das möglich?