Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: DatenDuck am 03.01.08 - 16:03:56

Titel: Clone Methode in LS?
Beitrag von: DatenDuck am 03.01.08 - 16:03:56
Hallo Forum,

frohes neues Jahr, mal so vorweg! ;)
Und nun gleich zur Sache:
Gibt es in LS eine Möglichkeit ein komplexes, eigenes Objekt zu klonen anstatt zu referenzieren?

Vielen Dank schon mal für Eure Hilfe!

Bis dann,
-Moritz
Titel: Re: Clone Methode in LS?
Beitrag von: Fedaykin am 03.01.08 - 17:13:43
Hi Moritz

Naja, klingt gemein. Aber wenn das ein eigenes komplexes Objekt ist wirst Du wohl auch die Clone Funktion selbst schreiben müssen. Denn die Logik kennt ja nur der Programmierer und kann komplexer werden.

Gruss
Remo
Titel: Re: Clone Methode in LS?
Beitrag von: flaite am 03.01.08 - 21:37:33
Allgemeine Clone Methoden sind eh problematisch.
Wie tief soll der Clone gehen?
Die meisten Objekte die sich lohnen zu clonen, sind ja selbst Objekt-graphen, d.h. besitzen Referenzen auf andere Objekte.
Wenn du Notes Document clonest, werden dann die Items auch gecloned, oder bleiben sie Referenzen. Wenn es Referenzen bleiben, ist es problematisch, weil dann die Items von 2 Dokumenten auf die gleichen Items referenzieren.
In Java wird btw. die clone Methode von java.lang.Object kaum benutzt.

Aber z.B. für Notes Dokument kannst du recht einfach eine eigene Clone-Funktion implementieren:

document.getItems() (oder so ähnlich) gibt eine Liste aller Felder eines Dokuments zurück. Die musst du durchiterieren und in das neue Dokument kopieren.
Ausser für NotesDocument wüsste ich nicht, wo clonen überhaupt Sinn machen könnte.
Titel: Re: Clone Methode in LS?
Beitrag von: DatenDuck am 04.01.08 - 08:38:58
Guten Morgen und danke für die Antworten.

Klonen wollte ich gerne ein Objekt meiner selbstgebauten Klasse. In den Eigenschaften sind "normale" Dinge wie Strings und arrays usw.. Wenn ich jetzt einfach Set zweitesObjekt = erstesObjekt mache, dann beeinflussen Änderungen im 2. Objekt auch das erste, von daher hatte ich mir erhofft, dass man einfach den ganzen Speicherbereich kopieren kann und dann 2 unabhängige Objekte bearbeiten kann...


Bis denn,
-Moritz