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??
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
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?
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 ( ) 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...