Methode implementieren, Parameter die übergeben werden sind final

LucaToni

Aktives Mitglied
wie kann ich denn Parameter, welche der Methode übergeben werden, aber final sind auf null etc. überprüfen?

Hier die Methode, bei der mir die finals Probleme machen.

Java:
public void check(final LocalDateTime date, final double level, final long zeit) {
     if(date!=null)
        {
          this.date=date;
        }
    if(level<=100 && level>=10)
        {
            this.level=level;
        }
    if(zeit>=0)
        {
            this.zeit=zeit;
        }
        else throw new IllegalArgumentException("Fehlerhafte Eingaben");
  }
 
final heißt nur, dass du den Parameter selbst nicht neu zuweisen kannst – das tust du dort nicht, deshalb weiß ich nicht, wo dein Problem ist.


Allerdings sind die if-Statements in der Form sicherlich falsch. check(null, -67266, 2) geht problemlos durch.
 
Und bei dem Code fällt auch auf: Das else bezieht sich nur auf das letzte if. Wenn kein gültiger Level angegeben wurde, dann wird einfach nur der Level nicht gesetzt.

Und aus der Praxis heraus habe ich mir angewöhnt, dass ich versuche keine halben Sachen machen. Also ich prüfe erst, ob die Eingabe / Parameter korrekt sind. Sind diese nicht korrekt, dann werfe ich direkt eine Exception, d.h. ich fange nicht erst an und lasse etwas halb fertig zurück. Das geht nicht immer, aber wo es geht, ist das der Fall bei mir.

Also bei so einer Methode wie bei Dir, wäre der Inhalt bei mir:
a) erst die Validierung. Also die ganzen Parameter werden alle erst geprüft + Exception, wenn diese die Anforderungen nicht erfüllen.
b) dann kommen die Veränderungen der Instanz, sprich: die drei Zuweisungen erfolgen dann.

Somit habe ich dann einen klaren Zustand der Instanz:
- Exception geworfen => Instanz ist unverändert
- keine Exception => Aktion erfolgreich durchgeführt.

Das nur als kleine Anmerkung am Rande.
 

Zurück
Oben