【发布时间】:2014-03-06 12:39:33
【问题描述】:
我无法在 OpenEdge ABL 中找到任何关于反射的内容以及如何操作。有可能吗?
【问题讨论】:
标签: progress-4gl openedge
我无法在 OpenEdge ABL 中找到任何关于反射的内容以及如何操作。有可能吗?
【问题讨论】:
标签: progress-4gl openedge
这是可能的。 OpenEdge 没有像 Java 或 C# 这样的语言那么多的可能性,但从版本 11 开始,它具有基本功能。
要使用反射,请查看 Progress.Lang.Object,它有一个方法 GetClass(),它返回一个 Progress.Lang.Class 的实例。
这些是 OpenEdge 帮助中Progress.Lang.Class 的成员(版本 11.1,所有 11.x 版本都应该相同):
在早期版本的 OpenEdge 中,反射能力更差。但是可以动态调用方法和创建实例。
您还应该看看DYNAMIC-NEW 语句和DYNAMIC-INVOKE 函数。
【讨论】:
尚未实施。
【讨论】:
不要忘记 GET-SIGNATURE() 方法和 INTERNAL-ENTRIES 属性。
【讨论】:
我在 2021 年寻找 OpenEdge ABL 中的反射,我发现现在有更多的可能性(我使用的是 OE 11.6)。我无法找到大量文档,但这是一个开始:https://docs.progress.com/bundle/openedge-oo-abl-develop-applications/page/Reflection.html
使用 Progress Developer Studio 时,您将能够看到使用自动完成 (Ctrl + Space) 时的可能性。
【讨论】: