【问题标题】:Getting a list of subclasses of a reference class获取引用类的子类列表
【发布时间】:2020-02-25 23:49:32
【问题描述】:

我创建了一个AbstractFoo 引用类和几个子类,现在我想获取所有子类的名称(AFooBFooCFoo)。使用 S4 类的 subclasses 插槽似乎可以做到这一点,但我想为参考类获得同样的东西。

例如我的代码可能是:

AbstractFoo <- setRefClass("AbstractFoo")
AFoo <- setRefClass("AFoo", contains = c("AbstractFoo"))
BFoo <- setRefClass("BFoo", contains = c("AbstractFoo"))
CFoo <- setRefClass("CFoo", contains = c("AbstractFoo"))

所以我想要返回 c("AFoo", "BFoo", "CFoo") 的东西。

【问题讨论】:

  • 你能举个AbstractFoo的例子吗
  • @d.b 我在问题中添加了一个示例。

标签: r reference-class


【解决方案1】:
foo = function(nm){
    objs = ls(envir = .GlobalEnv)
    tmp = setNames(lapply(objs, function(objName){
        thisObj = get(objName)
        if (class(thisObj) == "refObjectGenerator" & objName != nm){
            is(thisObj(), nm)
        }
    }), objs)
    tmp = unlist(tmp)
    names(tmp)[tmp]
}

foo("AbstractFoo")
#[1] "AFoo" "BFoo" "CFoo"

【讨论】:

    猜你喜欢
    • 2015-12-12
    • 1970-01-01
    • 1970-01-01
    • 2013-07-20
    • 2018-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多