Methode soll zwei unterschiedliche primitives zurückgeben

may24

Bekanntes Mitglied
Hi zusammen.

Ich habe da eigentlich nur 'ne Frage:

Eine meiner Methoden soll einen "String" und ein "long" zurückgeben die dann von anderen Methoden aufgegriffen und benutzt werden.
Ich habe mir das so vorgestellt das die Methode ein Array returned das die zwei Primitives beinhaltet.
Also ein Array (oder Liste) mit einem Strin und einem long Wert ...

Ist das überhaupt möglich ?
Wie ?
 
Ist das überhaupt möglich ?

z.B. so

Code:
	Object[] myArr = new Object[2];
		String s = "testString";
		Long l = 3000L;
		myArr[0] = s;
		myArr[1] = l;
		
		for (int i = 0; i < myArr.length; i++) {
		System.out.println(myArr[i]);
		}

Das Array kann nur Objekte aufnehmen. Ich habe beim Auslesen aufs Casten verzichtet, da es auch so funktioniert. Nur, da Objekte keine primitiven Datentypen sind, muss je nach Situation gecastet werden, z.B. so

Code:
System.out.println(100 + (Long)myArr[1]);

Was sich für Dein Problem auch anbietet, ist eine Klasse mit einer Membervariable für String und eine für Long und die entsprechenden Setters and Getters zu erzeugen.
 
Zuletzt bearbeitet:
Du erstellst Dir einfach ein Rückgabeobjekt; vernünftige Bezeichner mußt Du selbst vergeben:
Java:
public final class MyResult {
    private final String myString;
    private final long myLong;

    public MyResult(String myString, long myLong) {
        this.myString = myString;
        this.myLong = myLong;
    }

    public String getMyString() {
        return myString;
    }

    public long getMyLong() {
        return long;
    }
}

Final_Strikers Hinweis ist aber durchaus zu beherzigen. Warum hat die Methode zwei Rückgabewerte, warum ist das Ergebnis nicht ein Objekt? Natürlich kann man so etwas machen, und so etwas mag auch seinen Sinn haben – manche Sprachen haben dafür sogar eigene Sprachkonstrukte –, oft geht es aber anders und schöner, beispielsweise indem man die Methode in zwei Methoden aufteilt.
 
Zuletzt bearbeitet:

Zurück
Oben