Methode implementieren, Parameter die übergeben werden sind final

Diskutiere Methode implementieren, Parameter die übergeben werden sind final im Java Basics - Anfänger-Themen Bereich.
L

LucaToni

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");
  }
 
L

LimDul

Inwiefern macht die Probleme?

level/zeit können nie null sein, da es primitive Datentypen sind.

PS: Code Tags machen den Code lesbarer.
 
mrBrown

mrBrown

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.
 
MoxxiManagarm

MoxxiManagarm

Kleiner Rat am Rande, wenn ich den Methodennamen "check" lese, würde ich erwarten, dass die Methode irgendeinen Zustand prüft und dann ein boolean für die Gültigkeit zurückliefert. Was du tust hast ist aber ein multipler Setter.
 
J

JustNobody

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.
 
Thema: 

Methode implementieren, Parameter die übergeben werden sind final

Passende Stellenanzeigen aus deiner Region:
Anzeige

Neue Themen

Anzeige

Anzeige
Oben