Wir sind wieder mal an einer Stelle, wo es an einer genauen Beschreibung fehlt, welches Problem eigentlich gelöst werden soll. Hier werden nämlich schon wieder zwei Dinge vermischt.
@Liebhoff: siehe originärer Thread!
Zu diesem Thema hier:
Zu Interpreter Sprachen hat Baldur schon was gesagt, hier sei nur ergänzt, dass hier Flexibilität mit abnehmender Sicherheit erkauft wird: Fehler die zur Compiletime erkannt werden, treten nicht zur Laufzeit auf. Zu Delphi und Pascal sei angemerkt, dass originäres Pascal das keineswegs konnte und sich das auch nicht mit der eigentlichen Sprachphilosophie verträgt. Delphi kann sowas, ähnlich wie Java: dieser Mechanismus nennt sich Reflection und bezieht sich auch nicht auf alles innerhalb einer Klasse, sondern im wesentlichen auf die Exporte. Den Weg das in RPG zu nutzen habe ich in einem früheren Posting beschrieben.
Zum Design von sowas: auch in Java und Delphi muss man gute Gründe haben das zu nutzen, denn man bekommt nix für lau. Reflection hebelt Typprüfung aus und man kriegt Runtime Fehler (Type missmatch beim upcast), die man sonst garnicht bekommen kann, weil der Compiler einen davon abhält.
Im Falle von RPG muss man hier noch vorsichtiger sein, weil die RPG Runtime nich typsicher ist; der Compiler prüft zuwenig zur Compiletime und die Runtime weiss bei Pointern nicht auf was sie da zeigt.
Fazit: Wer unbedingt Reflection benötigt (ja, das gibt es wirklich), der sollte dafür eine Programmiersprache benutzen, die das vernünftig unterstützt. Wer das mit Gewalt (Dump auswerten ist ja wohl ein Scherz?!) in RPG versucht, liegt genauso schief, wie jemand, der eine FIBU in CL schreiben will.

D*B