Hi!
Dieser SonarQube Warnhinweis hat mein Interesse erneut geweckt - siehe Bild im Anhang.
Folgendes ist in dem Code passiert:
Ich würde hier nie ein Optional-Objekt auf Null checken sondern so:
Aber ich will verstehen warum wir das im Kontext einer langfristigen Verringerung von Fehleranfälligkeit einer Software so machen und nicht wie im ersten Code-Snippet?
Mich interessiert an der Stelle nicht, dass wir Optional-Objekte nicht auf Null checken, weil wir gegen irgendwelche Verträge verstoßen, Verwirrung kreiieren oder die Grundidee, dass Optionals an Nulls "ersetzen".
Das sind alles gute Gründe, aber ich will verstehen, warum uns diese Empfehlung dabei hilft langfristig Fehler zu vermeiden?
Am besten an einem konkreten Beispiel.
Lg
Zrebna
Dieser SonarQube Warnhinweis hat mein Interesse erneut geweckt - siehe Bild im Anhang.
Folgendes ist in dem Code passiert:
Java:
public void foo(Optional<String> identifier) {
if(identifier == null) {
// some action
}
}
Ich würde hier nie ein Optional-Objekt auf Null checken sondern so:
Java:
if(!identifier.isPresent()) {...}
// oder
if(identifier.isEmpty()) {...}
Aber ich will verstehen warum wir das im Kontext einer langfristigen Verringerung von Fehleranfälligkeit einer Software so machen und nicht wie im ersten Code-Snippet?
Mich interessiert an der Stelle nicht, dass wir Optional-Objekte nicht auf Null checken, weil wir gegen irgendwelche Verträge verstoßen, Verwirrung kreiieren oder die Grundidee, dass Optionals an Nulls "ersetzen".
Das sind alles gute Gründe, aber ich will verstehen, warum uns diese Empfehlung dabei hilft langfristig Fehler zu vermeiden?
Am besten an einem konkreten Beispiel.
Lg
Zrebna
Anhänge
Zuletzt bearbeitet: