Hallo,
wenn eine Method irgend ein Colection Instanz zurückliefern soll, ist es dann schon letztendlich „best practice“ auch im Fehlerfalle eine leere Collection-Instanz zurückzulieferen oder sollte im Fehlerfalle ein „null“ zurückgeliefert werden?
Vielen Dank Julian
Moin, moin,
wenn eine Method irgend ein Colection Instanz zurückliefern
soll, ist es dann schon letztendlich „best practice“ auch im
Fehlerfalle eine leere Collection-Instanz zurückzulieferen
oder sollte im Fehlerfalle ein „null“ zurückgeliefert werden?
Das kommt auf den Anwendungsfall an. Wenn Du zum Beispiel eine Drei-Wertige-Logik brauchst (d.h. true, false und „weiß nicht“), dann ist ein „null“ ganz nützlich.
Wenn Du aber die „lästigen“ unchecked NullPointerException vermeiden möchtest, dann würde ich ein e nicht veränderbare Empty-Collection zurückgeben.
Ich „mag“ eher Empty-Objekte, da hier immer noch eine Instanz da ist. Wenn das ganze dann noch gegen ein Interface gekapselt ist, dann kann man sogar eine spezielle Empty-Instanz zurückgeben (die z.B. bei Aufruf von irgendwelchen setXXX Methoden eine entsprechende Meldung ausgibt).
Vielen Dank Julian
Gruß,
Frank
Moin
wenn eine Method irgend ein Colection Instanz zurückliefern
soll, ist es dann schon letztendlich „best practice“ auch im
Fehlerfalle eine leere Collection-Instanz zurückzulieferen
oder sollte im Fehlerfalle ein „null“ zurückgeliefert werden?
„best practice“ (laut sun) ist die leere Collection-Instanz.
cu
wenn eine Method irgend ein Colection Instanz zurückliefern
soll, ist es dann schon letztendlich „best practice“ auch im
Fehlerfalle eine leere Collection-Instanz zurückzulieferen
oder sollte im Fehlerfalle ein „null“ zurückgeliefert werden?
Hmm… eine leere Collection ist für mich kein Fehlerfall 
Im Fehlerfall würde ich eine Exception werfen, wenn nichts gefunden wurde (z.b. suche nach objekten), dann eine leere Collection zurückgeben.
null zurückgeben im zweifel Fall halte ich für äußerst ungünstig, da macht man sich selbst nur Ärger damit (Stichwort: NullPointerException). Eine leere Liste muss man meist nicht gesondert behandeln und ein .iterator() darauf führt auch nicht gleich zum crash
Also bitte kein null
Grüße
Bruno