【问题标题】:Reflection in OpenEdge ABL / Progress 4GLOpenEdge ABL / Progress 4GL 中的反射
【发布时间】:2014-03-06 12:39:33
【问题描述】:

我无法在 OpenEdge ABL 中找到任何关于反射的内容以及如何操作。有可能吗?

【问题讨论】:

    标签: progress-4gl openedge


    【解决方案1】:

    这是可能的。 OpenEdge 没有像 Java 或 C# 这样的语言那么多的可能性,但从版本 11 开始,它具有基本功能。

    要使用反射,请查看 Progress.Lang.Object,它有一个方法 GetClass(),它返回一个 Progress.Lang.Class 的实例。

    这些是 OpenEdge 帮助中Progress.Lang.Class 的成员(版本 11.1,所有 11.x 版本都应该相同):

    在早期版本的 OpenEdge 中,反射能力更差。但是可以动态调用方法和创建实例。

    您还应该看看DYNAMIC-NEW 语句和DYNAMIC-INVOKE 函数。

    【讨论】:

      【解决方案2】:

      尚未实施。

      【讨论】:

      • 我明白了。认为我需要反思一个人在生活和编程语言中所做的选择...... :-)
      • 请记住,ABL 可以做很多其他语言做不到的事情! :)
      【解决方案3】:

      不要忘记 GET-SIGNATURE() 方法和 INTERNAL-ENTRIES 属性。

      【讨论】:

        【解决方案4】:

        我在 2021 年寻找 OpenEdge ABL 中的反射,我发现现在有更多的可能性(我使用的是 OE 11.6)。我无法找到大量文档,但这是一个开始:https://docs.progress.com/bundle/openedge-oo-abl-develop-applications/page/Reflection.html

        使用 Progress Developer Studio 时,您将能够看到使用自动完成 (Ctrl + Space) 时的可能性。

        【讨论】:

          猜你喜欢
          • 2012-03-19
          • 2014-03-19
          • 1970-01-01
          • 1970-01-01
          • 2013-10-08
          • 2017-07-18
          • 2018-03-14
          • 1970-01-01
          • 2020-02-08
          相关资源
          最近更新 更多