warum dieser CodeJava String Vergleich best practice
"name".equals(person.getName());
ist besser als
person.getName().equals("name");
warum dieser CodeJava String Vergleich best practice
"name".equals(person.getName());
ist besser als
person.getName().equals("name");
Ich ziehe den Yoda Expression"name".equals(person.getName());
, da es bedeutet, dass Sie brauchen nicht zu prüfen, ob person.getName()
null
ist . Das spart ein wenig Tipparbeit und ist wohl klarer, sobald man sich daran gewöhnt hat. In Ihrem Fall müssen Sie immer noch prüfen, ob person
nicht null
ist.
Weil die Konstante "name"
nie null
sein kann.
"name".equals(null)
ist gültig und wird false zurück, während
String personName = null;
personName.equals("name");
eine NullPointerException
"name".equals(person.getName());
Dieser Code werfen Null-Zeiger-Ausnahme vermeiden.
'" name "' wird nie Null sein – zec
'person.getName()' könnte 'null' zurückgeben, aber ob das Ignorieren eines 'null'-Werts besser ist als das Werfen einer Ausnahme ist umstritten. –
# 2 hat ein Problem: Person und 'getName' sind wahrscheinlich null zurückgeben. Sie müssen mindestens einen Null-Check für Person und getName() einschließen (es sei denn, Sie verfügen über einen anderen Mechanismus, der garantiert, dass der letztere niemals null ist – kolossus