Im Rahmen meiner Arbeit bin ich immer wieder mit Code konfrontiert, der zwar super funktioniert, aber schöner und einfacher gestaltet werden könnte. Ich will an dieser Stelle mal einige Dinge sammeln, die hier weiterhelfen können.
Vergleiche von Strings mit Konstanten
schlecht:
if (!string.equals(KONSTANTE){..
Problem: Nullpointer-Exception bei Null-String
medium:
if (string != null && !string.equals(KONSTANTE){ ...
schöner:
if (!KONSTANTE.equals(string){ ...
In dieser Schreibweise wird die Nullprüfung unnötig. "".equals(null)
gibt false zurück und verursacht keine Nullpointer-Exception.
Vergleiche mit Leerstring
schlecht:
eingabe.equals("")
Problem: siehe oben
medium:
"".equals(eingabe)
Problem: Es wird nicht beachtet, dass eingabe auch ” ” sein kann.
medium/schlecht:
"".equals(eingabe.trim())
Problem: Hier rennt man wieder in eine Nullpointer, wenn eingabe null ist.
schön:
StringUtils.isEmpty(eingabe)
StringUtils ist eine Klasse aus den apache.commons und deckt alle Anforderungen in diesem Zusammenhang ab:
isEmpty (null) == true
isEmpty("") == true
isEmpty(" ") == true
isEmpty ("something") == false
Analog ist mit Booleans zu verfahren. Hier gibt einem BooleanUtils entsprechende Hilfestellung. Aber Achtung: BooleanUtils.isFalse(null)
== false und BooleanUtils.isTrue(null)
== false!