Call by References

Hi,

Hab in meinem Objekt der klasse x:

class x {
private int i[][];
x() {
i = init();
}
public int[][] getI() {
return this.i;
}
}

das dumme ist, es ist ein CallByReferences
dh. Wenn ich den Rückgabewert ändere, ändert sich auch der wert in dem Objekt.
Gibt es ein ‚Schlüsselwort‘ mit dem ich devinitiv eine Kopie des 2Dimensionalen Arrays übergebe?
Bis dato kopiere ich es von Hand. Das scheint mir aber keine elegante lösung zu sein.
clone() tut nicht. Vermute mal, weil int ein primitiver Datentyp ist oder clone Probleme bei Arrays hat.

cu Desian

Hi,

Deine Vermutung bezüglich dem primitiven Datentyp ist richtig. Clone ist eine Objektmethode, und primitive Datentypen sind keine Objekte. Packe Deine Daten also in eine eigene Datenklasse, schreib für diese eine clone Methode und das Problem ist erledigt.

Gruss,

Herb

Hi,

Sinn des ganzen war allerdings, das ‚vonHand‘ zu vermeiden.
Aber danke.

cu Desian

Sinn des ganzen war allerdings, das ‚vonHand‘ zu vermeiden.

Fuer das Kopieren „von Hand“ sei hier noch System.arraycopy(…)
erwaehnt.

Gruss, Patrick