Heute habe ich einen Fehler in Legacy-Code, der mich führte zu einer schockierenden Entdeckung:Umwandlung von null auf Zeichenfolge in Java
String s = null + ""; //results in "null" string
s = String.valueOf(null); // NullPointerException is thrown
Integer i = null;
s = String.valueOf(i); //results in "null" string
erste Frage ist: Warum so ein unerwartetes Verhalten passiert?
Es bedeutet, dass ein bequemer Code wie folgt:
String age = person.getAge() + "";
völlig unerwartet wird.
Zweite Frage: Was ist die beste (elegant) Art und Weise ist eine Null anstelle von „null“
Die Ausnahme stört mich weniger als ein Falscher Wert, der weitergegeben wird, wenn NULL erwartet wird, aber stattdessen "null" Zeichenkette erhält – Constant
@Constant Stellen Sie in diesem Fall sicher, dass Sie niemals eine 'Null' an eine' Zeichenkette 'ketten und niemals 'Null' an' String übergeben. valueOf() '. – Eran