Schöner coden – einige Grundregeln

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!