2 rückgabewerte

Status
Nicht offen für weitere Antworten.
G

Guest

Gast
Hallo, git es einen weg ein int wert + ein Person Objekt zurückzugeben ohne eine neue Klasse(eganl ob innere oder normale) zu generieren. ?

sozsagen indem man eine referenz mit gibt also den wert als parameter mitgibt und dieser dann geändert ist?
 

Wildcard

Top Contributor
1. Ja, die gibt es. Zum Beispiel mit hilfe eines Arrays.
2. Wenn du die Referenz auf ein Objekt übergibst und das Objekt in der Methode veränderst, dann ist diese Änderung natürlich auch über den Scope der Methode hinaus passiert.
 
G

Guest

Gast
hallo also wollte den wert ändern aber es scheint nicht u funktionieren in der methode wird er geändert doch wieder zurück in der aufrufenden methode ist das int wert 0

Code:
i
nt orderID = 0;
Article article= Client.getInstance().change(
					String name,  orderID); // nach aufruf ist orderID 0 aber in methode ist order ID 345
			if (orderID > 0)
			{
//tue etwas
}

Was mache ich falsch oder muss ich in falle doch die sache mit dem array versuchen, allerdings dache ich das diese methode übersichtlicher ist
 

chilla

Mitglied
primitive datentypen kannst du so nicht verwenden.
wenn dann muss du die orderID zurückgeben und die referenz von article verändern.

für kleine beispiele mag es vielleicht sinnvoll sein solch einen workaround zu basteln, aber im regelfall solltest du lieber eine eigenständige klasse entwickeln. man braucht ja dann doch immer mehr als anfangs angenommen ;)
 

jPat

Bekanntes Mitglied
Hinweis : call by value vs. call by reference !
Objecte : call by reference
primitive: call by value

[edit] JaVa Kein CALL ...:roll: [/edit]
:D
 

jPat

Bekanntes Mitglied
:shock:

Code:
public class Main {

	public void add(Vector v){
		v.add(0);
		v.add(1);		
	}
	public static void main(String[] args) {
		Vector v = new Vector();
		Main m = new Main();
		m.add(v);
		System.out.println(v.size());
}
}
:bae:
 

jPat

Bekanntes Mitglied
Ist selbstverständlich sooo nicht richtig!!!
Code:
	public void add(Vector v){
		v = new Vector();
		v.add(0);
		v.add(1);		
	}
	public static void main(String[] args)  {
	    
		Vector v = new Vector();
		v.add(1);
		Main m = new Main();
		m.add(v);
		System.out.println(v.size());

}

}

Die Referenze des Vectors ist byVal übergeben worden!! :oops:
Ich werde es mir merken

Java -> kein calByRef .... java -> kein CallByRef .... java Kein cAlLByReF :autsch:
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen

Neue Themen


Oben