Wie (wenn möglich) mit Referenz zu einem in-memory-Objekt (Instanz der Klasse)?

Ich versuche zu sehen, ob es gibt einen Weg, um ein refference eines Objekts, die sich außerhalb des lokalen (und globalen) Rahmen, wer aber im Speicher vorhanden.

Lassen Sie uns sagen, in meinem Programm habe ich instanziiert ein Objekt, dessen Referenz wird dies:
{O:9*\PROGRAM=ZAVG_DELETE_THIS\CLASS=LCL_SMTH}

Weit Weg nach Tonnen von anrufen, die in einem Kontext, wo ich nicht in der Lage sein, um Zugriff auf dieses Objekt, könnte ich etwas tun, wie immer der Verweis auf dieses Objekt einfach durch die Kenntnis der oben genannten Schnur?

Suchte ich in der cl_abap_*descr Klassen, aber ich habe nicht gefunden, eine Methode, die das 'Programmname', 'class_name' und 'instanznummer', zur Rückgabe der Referenz auf ein Objekt.

Ich versuche zu tun, dies für Zwecke der Fehlerbeseitigung, nicht etwas zu bauen das funktioniert.

[EDIT 1]:
Ich vermutete, dass der o:9 string war erforderlich, um die Referenz des Objekts. Wie bereits in der Antwort von @mydoghasworms, dies ist nicht der Fall. Es scheint, dass ich brauche nur die lokalen Namen, der die variable enthält die Referenz.

  • Ich hoffe aufrichtig, dass dies unmöglich ist...
  • Es ist nicht nur möglich (wie ich in Kürze zeigen), aber er kommt eigentlich ganz praktisch! (Obwohl ich nicht weiß, was du meinst mit "für die Zwecke von debugging" - hoffe ich verstehe dich richtig!)
  • Sie sind nicht die Lösung der Frage angegeben, siehe Kommentar unten.
  • Ja, jetzt, dass Sie darauf hingewiesen haben. @vlad-ardelean, was wäre die praktische Anwendung dieser? Wie würden Sie selbst wissen, den string in ein Programm weiter unten, wenn es könnte immer auch anders sein? (O:9 Referenz ist nicht unbedingt identisch).
  • obwohl ich nicht weiß, ob das o:9 Referenz werden die gleichen sein, ich erwarte "etwas" das gleiche zu sein, weil ich erwarte, dass das Objekt, das bleiben in der gleichen Position im Speicher, unabhängig von der aktuellen stack-position - also dann sollte ich das verallgemeinern Frage. thx für den Hinweis
  • Kein problem. Aber deine Frage ist sehr interessant. Ich habe die Suche nun schon eine Weile, um herauszufinden, ob das, was Sie ursprünglich gefragt, getan werden kann, und ich denke, es muss möglich sein, da der debugger übersetzen kann, dass der string in eine Referenz. Jedoch, was ist interessanter zu beachten ist, dass der name des Typs/der Klasse in der Zeichenfolge keine Bedeutung. Es ist die Zahl, die scheint zu zeigen, um eine Referenz auf den heap. Sie können zum Beispiel setzen, 9<> wie der name des Feldes in der debugger und es wird wieder das gleiche Objekt.

Schreibe einen Kommentar