Anzahl der erzeugten Instanzen?

Die Objektorientierung mit ABAP®: Vererbung, Dynamische Programmierung, GUI Controls (u.a. ALV im OO).

Anzahl der erzeugten Instanzen?

Postby Celin1755 » Tue Dec 16, 2003 4:12 pm

Gibt es eine Möglichkeit zu zählen wieviel Instanzen man erzeugt hat?
Man kann zwar im Konstruktor einen Zähler mitlaufen lassen, der dann pro Create Object um 1 erhöht wird.
Aber was passiert wenn ich die Refernz auf ein Objekt lösche und der Garbage Collector die Instanz löscht?
Kann ich den Zähler irgendwo wieder runterzählen oder gibt es eine Funktion die mir sagt wieviele Instanzen ich derzeit habe??
Celin1755
..
..
 
Posts: 17
Joined: Tue Dec 16, 2003 4:12 pm

Postby Melia1066 » Tue Dec 16, 2003 4:45 pm

Hi gucky,

schau dir mal die Klasse CL_GUI_OBJECT an. Besonders interessant ist hierbei die methode Free. Die dann auf eine Methode namens CL_GUI_CFW=>REMOVE_OBJECT aufruft. Dort wird eine Tabelle CFW_MEMBERLIST upgedated. In dieser Tabelle scheint alle instanzen der eingenen klasse zu beinhalten. ( über add_object wird in die tabelle die daten hineingegeben )
Ich habe die methode damals beim ALV_GRID verwendet wenn ich die Transaktion verlassen habe.
Das würde doch aber genau dem konzept entsprechen, daß du brauchst... Oder?
Gruß deDieter
Melia1066
..
..
 
Posts: 43
Joined: Tue Sep 23, 2003 1:30 pm

Postby Celin1755 » Tue Dec 16, 2003 5:44 pm

Danke :-)

Wenn ich das jetzt richtig verstanden hab :-) muss ich also bevor ich eine Referenz auf ein Objekt lösche eine Free Methode aufrufen die mir das ganze wieder runterzählt.
Gibts da keine Standard Möglichkeit von SAP aus?
Celin1755
..
..
 
Posts: 17
Joined: Tue Dec 16, 2003 4:12 pm

Postby Melia1066 » Tue Dec 16, 2003 6:04 pm

Mal andersherum gefragt, gibt es dafür denn keine standardmöglichkeit in einer anderen Objektorientierten sprache :?:
Bezweifle, daß die informationen in irgendeiner DB abgelegt sind. wenn dann in einer lokalen tabelle oder geheimen ( :wink: ) klasse auf dem appserver...

Ich habe dir hier ein beispiel für einen destruktor gezeigt. Ob du die methode einfach so aufrufen kannst, kann ich dir leider nicht sagen, denn diese war in meinen AVL_GRID vorhanden weil es von der klasse CL_GUI_OBJECT gerbt hat. Leider weiß ich eben nicht, wie dein klassenkonzept aussieht.
Aber du könntest dir selbverständlich auch eine superklasse mit einer freemethode machen von denen deine eigentlichen klassen dann erben...

Gruß
Melia1066
..
..
 
Posts: 43
Joined: Tue Sep 23, 2003 1:30 pm


Return to ABAP Objects®

Who is online

Users browsing this forum: No registered users and 8 guests