Rückgabewert einer Klassenmethode

kossy

Bekanntes Mitglied
Hallo zusammen !

Ich habe eine Frage an euch zu diesem Stückchen Java Code. In der Zeile "PersonenRegister preg = datastore.getPersonRegister();" könnte rein theoretisch eine NullPointerException ausgelöst werden, die dazu noch vom Aufrufer behandelt werden müsste:

Java:
public void anmeldenPerson( Person p ){
    if ( p != null ){
        Datastore d = new Datastore();
        PersonenRegister preg = datastore.getPersonRegister();
        if ( preg != null ){           
            //weiterer Java Code
        }
    }
}

Ist es jetzt immer guter Stil, wenn in diesem Fall kein PersonenRegister zurückgeliefert werden könnte,
eine leere Liste vom Typ PersonenRegister zurückzugeben und das dann entsprechend in " if ( preg != null )" abzuprüfen, oder gibt es für solche Fälle noch passendere allgemeingültige Codeansätze?

Gruß
Kossy
 
Was machst du denn wenn p oder preg null sind?

Nebenbei, schlechte Wahl für Variablennamen, p -> person, preg -> personRegister (was auch immer das sein soll)
 
Was machst du denn wenn p oder preg null sind?

In dem Fall soll kein Code ausgeführt werden.

Nebenbei, schlechte Wahl für Variablennamen, p -> person, preg -> personRegister (was auch immer das sein soll)

Da gebe ich Dir Recht, dass war jetzt ein ein sehr schnell und schmutzig zusammengeschriebenes Stückchen Javacode.

Gruß
Kossy

//Edit

Ist Frage ist ja, ob das mit der Rückgabe einer leeren Liste immer sinnvoll erscheint?
 
hmm .. entweder NPE so weit weiterwerfen bis irgendwo mal n zentraler punkt zum fangen ist ... oder so früh wie möglich das auftreten von NULL verhindern
 
In dem Fall soll kein Code ausgeführt werden.
Welches Zweck/Sinn soll das haben???

IMHO stellt deine null da einen Fehlerzustand dar, beide.
Wenn das so ist würde ich nicht gegen null prüfen, ist nämlich entweder ein bug (und dann ist eine NPE berechtigt) oder ein fehler in der Konfig (DB nicht ansprechbar?)...

Wie dem auch sei, soltest mehr dazu sagen was du eigetnlich vorhast, gegen nul zu prüfen ist im allgemeinen kein guter Stil.
 
Also vor habe ich ehrlich gesagt nichts konkretes. Das ist eher eine allgemeine Syntaxfrage und Stilfrage meinerseits.

Ich specke das Beispiel mal etwas ab (vergiss das mal mit dem null Prüfungen):

Java:
public void anmeldenPerson(){    
        Datastore d = new Datastore();
        PersonenRegister preg = datastore.getPersonRegister();    
}

Wie gesagt es geht hier nur um die Frage, ob eine leere Liste zurückgeben immer sinnvoll erscheint, oder ob das da bessere Ansätze gibt.

Gruß
Kossy
 
davon abgesehen das in dem geposteten "shadowing" greift *du also mit lokalen statt globalen variablen arbeitest" wird in der methode NICHTS gemacht ...

außerdem : woher sollen wir wissen was Datasource ist und was getPersonRegister macht wenn wir dessen source nicht haben

das zurückgeben einer "leeren" liste ist in diesem fall schlechter stil da "NULL" in deinem fall ein fehler ist und anständig behandelt werden sollte *zumidnest im caller ... ansonsten würde ich für sorgen das in Datasource.getPersonRegister() irgendwas ausgelöst wird *meinet wegen net IOException oder sowas* ... was dann ordentlich behandelt werden muss ... aber einfach auf NULL prüfen und bei true gar nichts tun ist eher ein bug da lediglich ein fehler verschluckt wird anstatt diesen zu behandeln
 

Zurück
Oben