如何以编程方式获取 qooxdoo 子类列表

How obtain list of qooxdoo sublasses programmatically

我正在为 qx.mobile 开发 ClojureScript 包装器,并希望以编程方式构建一个 cljs 类型层次结构来镜像 qx class 层次结构。

有没有办法获取 qooxdoo class 的所有子classes?

查询 class 的 superclass 的编程方式如何?

我已经在充分利用 qx.Class.getProperties。

谢谢,谢谢

获取给定 class 的 superclass 的编程方式记录在 http://demo.qooxdoo.org/current/apiviewer/#qx.Class

<classname>.superclass

或者获取 superclass 的名称作为字符串

<classname>.superclass.classname

这意味着例如

qx.ui.core.Widget.superclass.classname

将return字符串"qx.ui.core.LayoutItem".

关于检索 class 的所有子 class 的编程方式: 如果不迭代整个 class hierarchy/tree 并测试对象是否是给定 class.class 的子class,目前这是不可能的。

我们在 https://gitter.im/qooxdoo/qooxdoo 讨论过,为每个 class 持有子 class 创建一个数组可能会很有用。这可以添加到 qx.Class.

中私有方法 __createClass 的代码中

我们希望鼓励所有需要此(或其他)功能的人加入我们 https://github.com/qooxdoo/qooxdoo/ 并通过创建拉取请求帮助扩展 qooxdoo。谢谢。

在 qx.Class 中深入研究后,我们决定实现一种方法 qx.Class.getSubclasses,其中 returns 是一个包含所有 sub[=21] 的哈希对象=] 给定的 class.

var subclasses = qx.Class.getSubclasses(qx.ui.core.Widget);

获取 qx.ui.core.Widget 的所有子class。

通过提交 https://github.com/qooxdoo/qooxdoo/pull/9037

登陆 qooxdoo master