我正在为qx.mobile编写一个ClojureScript包装器,并希望以编程方式构建一个镜像qx类层次结构的cljs类型层次结构。
有没有办法获取qooxdoo类的所有子类?
如何以编程方式查询类的超类?
我已经很好地使用了qx.Class.getProperties。
Thx,kt
答案 0 :(得分:4)
获取给定类的超类的编程方法记录在http://demo.qooxdoo.org/current/apiviewer/#qx.Class
<classname>.superclass
或将超类的名称作为字符串
<classname>.superclass.classname
这意味着例如
qx.ui.core.Widget.superclass.classname
将返回字符串“qx.ui.core.LayoutItem”。
关于检索类的所有子类的编程方法: 如果不迭代整个类层次结构/树并测试对象不是给定类的子类,那么这是不可能的。
我们在https://gitter.im/qooxdoo/qooxdoo讨论过,为每个持有子类的类创建一个数组可能会很有用。这可以添加到qx.Class中的私有方法__createClass的代码中。
我们希望鼓励每个需要此(或其他)功能的人加入https://github.com/qooxdoo/qooxdoo/并通过创建拉取请求来帮助扩展qooxdoo。谢谢。
答案 1 :(得分:2)
在qx.Class中挖掘了一下之后,我们决定实现一个方法qx.Class.getSubclasses,它返回一个包含给定类的所有子类的哈希对象。
var subclasses = qx.Class.getSubclasses(qx.ui.core.Widget);
获取qx.ui.core.Widget的所有子类。
登陆qooxdoo master