Datentypen Funktion: 2 mögl. Rückgabewerte

Slyx

Mitglied
Hallo,

ich habe hier eine Funktion, die 2 mögliche Rückgabewerte liefern können soll:
Normalerweise ein 2 dimensionales Array oder -wenn eine bestimmte Bedingung nicht zutrifft- ein boolean (false).

Wenn ich die Funktion aufrufe soll wenn die Rückgabe ein Array ist dieses in ein anderes Array gespeichert werden und wenn sie false ist soll die Funktion noch einmal ausgeführt werden.

Wie mache ich das jetzt am besten?

Wenn ich die Funktion mit "public static int[][]" aufbaue kann ich eben schlecht ein false zurückgeben und ein false in ein Array zu "verpacken" halte ich auch für zu aufwendig. Gibt es vielleicht irgendwie die Möglichkeit, die Ausführung der Funktion abzubrechen und so ein boolschen Wert zurückzugeben?

Vielen Dank schon einmal!
 
So wie du es haben willst geht das nicht. Vermutlich lässt sich das was du willst mit Exceptions lösen: wenn alles ok ist, gibst du eben dein int-Array zurück, ansonsten schmeißt du eine Exception.
Wenn du es aber um alles in der Welt mit 2 Rückgabeparameter machen willst, dann kannst du dir auch eine eigene Klasse schreiben mit int[][] und boolean-Instanzvariablen und je nach dem was du brauchst das Ergebnis durch eine Setter-Methode setzen. Nach dem Aufruf deiner Methode kannst du dann dieses Objekt auswerten und überprüfen welches von den beiden Sachen gesetzt ist.
Oder du kannst auch ggf null zurück geben und darauf reagieren
Oder.....
 
Vermutlich lässt sich das was du willst mit Exceptions lösen: wenn alles ok ist, gibst du eben dein int-Array zurück, ansonsten schmeißt du eine Exception.

das klingt gut, gucke ich mir mal an.


Oder du kannst auch ggf null zurück geben und darauf reagieren
Oder.....

Meinst du jetzt auch, dass ich einen Array zurückgebe, in dem einfach nur alle Werte auf 0 gesetzt sind oder könnte man da noch "mehr" machen, dass wirklich gut auslesbar ist?
 
ne, ich meine wirklich
Code:
null
, sowas wie:
Java:
public int[][] test(boolean condition) {
  if (condition) {
    return new int[][]{{1,2},{3,4},{5}};
  } else {
    return null;
  }
}

Dann kannst du bei aufruf sowas wie:
Java:
int[][] result = test(false);
if (result!=null) {
  System.out.println(result.length);
} else {
  System.out.println("is null");
}

machen
 

Neue Themen


Zurück
Oben