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 / 4904 / 328 / 646 ) »
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.
5410
Views
Objekt mit Referenz als Attribut auf DB speichern?
von dejo79 » 08.02.2017 17:00 • Verfasst in ABAP Objects®
0
Antw.
1569
Views
Kopie Smartforms ( wie weiss man das jetzt die Kopie druckt)
von Kleenmex » 21.01.2008 09:08 • Verfasst in Basis
3
Antw.
4556
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.
7639
Views
Referenz-Tabelle und Referenz-Feld
von dyv » 28.08.2014 15:25 • Verfasst in ABAP® für Anfänger
3
Antw.
18161
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

Benutzerdefinierte Felder PSP
vor 5 Tagen von Rabea1103 1 / 1211
Zukunft des ABAP Entwicklers
vor einer Woche von DeathAndPain 14 / 15160
HR in der Zukunft?
vor einer Woche von DeathAndPain 6 / 17052
Analyse abhängiger Objekte zu einem ABAP-Programm
vor einer Woche von MAJOR_TOM gelöst 5 / 15113

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

Benutzerdefinierte Felder PSP
vor 5 Tagen von Rabea1103 1 / 1211
Zukunft des ABAP Entwicklers
vor einer Woche von DeathAndPain 14 / 15160
HR in der Zukunft?
vor einer Woche von DeathAndPain 6 / 17052
Analyse abhängiger Objekte zu einem ABAP-Programm
vor einer Woche von MAJOR_TOM gelöst 5 / 15113

Unbeantwortete Forenbeiträge

Benutzerdefinierte Felder PSP
vor 5 Tagen von Rabea1103 1 / 1211
Spool vereinen OTF und PDF
vor 3 Wochen von anna2205 1 / 14210
XSLT und Loipro05 Transformation
December 2025 von Torsten1965 1 / 20805
VOLL Artikel in einem Display Typ 12
November 2025 von ThomasM84 1 / 39764