我无法在OpenEdge ABL中找到任何反思,以及如何做到这一点。它甚至可能吗?
答案 0 :(得分:2)
有可能。 OpenEdge没有像Java或C#那样多的可能性,但从版本11开始它就具有基本的功能。
要使用反射,请查看Progress.Lang.Object
,其中方法GetClass()
会返回Progress.Lang.Class
的实例。
这些是OpenEdge帮助中Progress.Lang.Class
的成员(版本11.1,对于所有11.x版本应该是相同的):
在早期版本的OpenEdge中,反射能力更差。但是可以动态调用方法和创建实例。
您还应该查看DYNAMIC-NEW
语句和DYNAMIC-INVOKE
函数。
答案 1 :(得分:1)
尚未实施。
答案 2 :(得分:1)
不要忘记GET-SIGNATURE()方法和INTERNAL-ENTRIES属性。
答案 3 :(得分:0)
我在 2021 年寻找 OpenEdge ABL 中的反射,我发现现在有更多的可能性(我使用的是 OE 11.6)。我找不到详尽的文档,但这是一个开始:https://docs.progress.com/bundle/openedge-oo-abl-develop-applications/page/Reflection.html
使用 Progress Developer Studio 时,您将能够看到使用自动完成功能 (Ctrl + Space) 的可能性。