Każda z nich ma zalety i rozumiem różnice, ale co uważa się za najlepszą / standardową praktykę? I dlaczego?
Na przykład :
"myString".equals(myStringVar)
- Unika potencjalnego NPE i nie wymaga kontroli zerowej. (Dobra rzecz?)
- Czystszy do odczytu, ponieważ kontrola zerowa nie jest wymagana.
- Jeśli wartość null nie jest wartością oczekiwaną, Twój program może się zepsuć, nie będąc mądrzejszym.
jednak
myStringVar.equals("myString")
- Wymaga sprawdzenia wartości null, czy wartość null jest wartością oczekiwaną. (Dobra rzecz?)
- Może zagracać złożone warunki warunkowe za pomocą kontroli zerowej.
- Pozwala NPE powiadomić nas, jeśli coś się zepsuło.
Którą odmianę uważa się za standard do użycia w Javie i dlaczego?