Abbruchbedingung

Sammykop

Mitglied
Huhu Leute ;)
Gegeben habe ich folgenden JavaDoc Kommentar:
/**
* Returns the next element in the list and moves the cursor to the next fragment.
* Aborts if there is no next fragment.
*
* @return This Element's successor Element.
*/

Mein Code ist:

public Fragment next() {
if(this.hasNext()){
currentElement = currentElement.next;
return currentElement.fragment;
}else{
return null;
}
}

Meine Frage:
Im JavaDoc Kommentar steht, dass die Methode abbrechen soll, wenn es (in diesem Fall) kein weiteres Fragment gibt. Ich habe aber ein "return null", was natürlich keinem Abbruch der Methode entspricht.
Wie schreibe ich eine Abbruchbedingung in meiner Methode?

Danke schonmal für Eure Antwort ;)

MfG
Sammykop
 
T

TryToHelp

Gast
Dann würde ich das aber im JavaDoc Kommentar erwarten, das da steht, das es eine Exception wirft und wenn ja welche.

Ich denke dein return null ist passend
 

Crian

Top Contributor
Ja würde ich auch. Wenn man null zurückgeben soll, würde ich aber auch genau den Kommentar erwarten. Allerdings sollte man bei next() vermutlich erwarten können, null zu bekommen, wenn es nichts weiteres mehr gibt. Daher ist die Lösung vermutlich richtig.
 
N

nillehammer

Gast
Ich persönlich finde das returnen von null nur in Ausnahmefällen gut. Aber das ist hier ja nicht das Thema. Ich würde aber explizit erwähnen, dass null returnt werden kann. In Deinem Fall also etwa so:
Java:
/**
   * @return This Element's successor Element or null if there is no successor
   * (e.g. we have reached the last element).
   */
P.S. Als Untertstützung für meine Meinung verweise ich auf die Klassen des Collection-Frameworks (hier speziell der Iterator). Die werfen eine NoSuchElementException statt null zu returnen.
 
Zuletzt bearbeitet von einem Moderator:
T

TryToHelp

Gast
Da steht aber sicherlich auch in der JavaDoc, das dort diese Exception geworfen wird oder? und das ist ja bei der gegebenen JavaDoc Zeile nicht der Fall

Ja null zu returnen finde ich generell auch nicht gut, aber in diesemfall nunmal richtig
 

Sammykop

Mitglied
Meiner Meinung nach ist es einfach sehr seltsam gestellt..
Aber am Montag werde ich wissen was gemeint war^^
Ich schreibs euch einfach mal rein, wenn es einen von Euch interessiert xD
 
N

nillehammer

Gast
TryToHelp hat gesagt.:
Da steht aber sicherlich auch in der JavaDoc, das dort diese Exception geworfen wird oder? und das ist ja bei der gegebenen JavaDoc Zeile nicht der Fall

Ja null zu returnen finde ich generell auch nicht gut, aber in diesemfall nunmal richtig
Stimt, eine Methode anhand des gegebenen JavaDoc-Kommentars würde ich wohl auch eher so entwickeln. Ich denke also jetzt auch, dass die Lösung richtig ist.
 
D

Dow Jones

Gast
Für gewöhnlich sieht man als Anwender ja nur den Javadoc-Kommentar und die Signatur, nicht aber den Methodenrumpf selber. Wenn nun die Rede von einem Abbruch ist dann würde ich erwarten das die Methode nichts tut (mehr oder weniger) wenn die Bedingung nicht erfüllt ist. Zumindest sollte sie dann keine Werte verändern sondern ihre Tätigkeit "abbrechen" und returnen. Insofern wäre die im ersten Posting gezeigte Methode für mich schon richtig so, und ich würde in der zugehörigen Dokumentation auch ruhig von einem Abbruch reden.
 

Natac

Bekanntes Mitglied
Java:
/**
* Returns the next element in the list and moves the cursor to the next fragment.
* Aborts if there is no next fragment.
*
* @return This Element's successor Element.
*/

//Mein Code ist:

public Fragment next() {
 if(this.hasNext()){
  currentElement = currentElement.next;
  return currentElement.fragment;
 }else{
  return null;
 }
}
Bitte nächstes Mal in [JAVA ]-Tags und mit Einrückung ;)

Also ich finde "Abort" lässt offen, ob du
Code:
null
zurück gibts oder eine Exception wirfst. Kann denn ein "Fragment" [c]null[/c] sein? Wenn ja ist eine Exception sinnvoller. Wenn [c]null[/c] ausgeschlossen ist, kann man es auch mit [c]null[/c] machen.
 

Ähnliche Java Themen

Neue Themen


Oben