Kopie der Werte, nicht der Referenz. Objekt klonen?

Die Objektorientierung mit ABAP®: Vererbung, Dynamische Programmierung, GUI Controls (u.a. ALV im OO).
4 Beiträge • Seite 1 von 1
4 Beiträge Seite 1 von 1

Kopie der Werte, nicht der Referenz. Objekt klonen?

Beitrag von newbie007 (ForumUser / 31 / 1 / 0 ) »
Hey,

wenn ich ein Objekt klone, wird die entsprechende Referenz ja nicht kopiert. Ich bin davon ausgeganben, dass wenn ich objekt1 klone und dem objekt2 zuweise, Änderungen an einem Objekt sich nicht auf das andere Objekt auswirken.

Code: Alles auswählen.

CREATE OBJECT object1.
object2 ?= object1->if_os_clone~clone( ).
Aber das scheint nicht zu stimmen. Wenn ich nun object1 Werte zuweise, hat die object2 auch. Warum? Wie kann ich das verhindern?

Im Grunde möchte ich nur alle Werte des ersten Objekts in das zweite Objekt kopieren. Im ersten Objekt möchte ich dann Änderungen vornehmen. Wenn ich die Änderungen verwerfe soll object2 dazu da sein, die Werte von object1 wiederherzustellen.
Wie bekomme ich das hin?


Danke, Ciao!

gesponsert
Stellenangebote auf ABAPforum.com schalten
kostenfrei für Ausbildungsberufe und Werksstudenten


Re: Kopie der Werte, nicht der Referenz. Objekt klonen?

Beitrag von ewx (Top Expert / 4871 / 314 / 644 ) »
Folgendes Beispiel widerlegt deine Behauptung:

Code: Alles auswählen.

REPORT.

*----------------------------------------------------------------------*
CLASS z1 DEFINITION .
  PUBLIC SECTION.
    INTERFACES if_os_clone.
    DATA test TYPE c LENGTH 2.
ENDCLASS.                    "z1 DEFINITION

*----------------------------------------------------------------------*
CLASS z1 IMPLEMENTATION.
  METHOD if_os_clone~clone.
    SYSTEM-CALL OBJMGR CLONE me TO result.
  ENDMETHOD.                    "IF_OS_CLONE~CLONE
ENDCLASS.                    "z1 IMPLEMENTATION

DATA r1 TYPE REF TO z1.
DATA r2 TYPE REF TO z1.

START-OF-SELECTION.
  CREATE OBJECT r1.

  r2 ?= r1->if_os_clone~clone( ).
  r1->test = 'A'.

  WRITE: / 'r1->test:', r1->test COLOR COL_GROUP.
  WRITE: / 'r2->test:', r2->test COLOR COL_GROUP.
Da muss ein anderer Fehler sein, denke ich...

Re: Kopie der Werte, nicht der Referenz. Objekt klonen?

Beitrag von newbie007 (ForumUser / 31 / 1 / 0 ) »
Dann schaue ich mir das gegen später mal an und gebe dann Rückmeldung.

Danke!

Re: Kopie der Werte, nicht der Referenz. Objekt klonen?

Beitrag von newbie007 (ForumUser / 31 / 1 / 0 ) »
Hab meinen Fehler gefunden. Die Referenz verfügt über eine Tabelle mit weiteren Referenzen einer anderen Klasse. Ich muss daher nicht nur das eine Objekt klonen, sondern auch die, welche sich in der internen Tabelle befinden.
Und da kommt auch schon ein neues Problem. Ich loope über meine interne Tabelle und klone eben jedes einzelne Objekt der Klasse class2. Diese füge ich nun an eine neue interne Tabelle an, die ich meinem Klon der Klasse class1 übergeben möchte. Allerdings bekomme ich das nicht hin mit der Typisierung zur Laufzeit. Klasse1 ist vom Typ Object zur Laufzeit, daher kann ich nicht auf die interne Tabelle der Klasse1 zugreifen. Ich hab versucht ein CASTING mittels

Code: Alles auswählen.

FIELD-SYMBOLS <fs> TYPE REF TO class1.
ASSIGN result TO <fs> CASTING.
durchzuführen, damit result über die Methoden und Attribute der Klasse class1 verfügt.
Als Meldung bekomme ich
"<FS>" und "RESULT" enthalten Referenzen oder interne Tabellen oder
Strings. Bei der aktuellen Anweisung müssen diese an der gleichen
Offset-Position stehen und kompatibel sein.
Wie kann man das lösen?

Seite 1 von 1

Vergleichbare Themen

10
Antw.
4974
Views
Objekt mit Referenz als Attribut auf DB speichern?
von dejo79 » 08.02.2017 17:00 • Verfasst in ABAP Objects®
0
Antw.
1339
Views
Kopie Smartforms ( wie weiss man das jetzt die Kopie druckt)
von Kleenmex » 21.01.2008 09:08 • Verfasst in Basis
3
Antw.
3648
Views
Referenz-Tabelle UND Referenz-Feld f.BRGEW und NTGEW
von bohne » 22.02.2007 10:52 • Verfasst in ABAP® für Anfänger
2
Antw.
6748
Views
Referenz-Tabelle und Referenz-Feld
von dyv » 28.08.2014 15:25 • Verfasst in ABAP® für Anfänger
3
Antw.
15496
Views
Dienste zum Objekt - Notizen zu Objekt holen
von gazzle » 26.01.2011 12:24 • Verfasst in ABAP® Core

Über diesen Beitrag


Unterstütze die Community und teile den Beitrag für mehr Leser und Austausch

Aktuelle Forenbeiträge

Hilfe zum FB MATERIAL_MAINTAIN_DARK
Gestern von black_adept gelöst 8 / 1774
HR-Entgeltnachweis
vor 2 Tagen von ChrisB 4 / 2314

Newsletter Anmeldung

Keine Beiträge verpassen! Wöchentlich versenden wir lesenwerte Beiträge aus unserer Community.
Die letzte Ausgabe findest du hier.
Details zum Versandverfahren und zu Ihren Widerrufsmöglichkeiten findest du in unserer Datenschutzerklärung.

Aktuelle Forenbeiträge

Hilfe zum FB MATERIAL_MAINTAIN_DARK
Gestern von black_adept gelöst 8 / 1774
HR-Entgeltnachweis
vor 2 Tagen von ChrisB 4 / 2314

Unbeantwortete Forenbeiträge

Export von Spools in XLSX
vor 4 Tagen von abapamateur 1 / 342
Feldberechnung ME32K
vor einer Woche von ZF_SAPler 1 / 937
MS-Word als Editor
letzen Monat von tekko 1 / 4446