4

クラス定義で明示的に定義された参照クラスのメソッドのみをリストする方法はありますかrefObjectGenerator( またはなどの「システム クラス」によって継承されるメソッドとは対照的envRefClassです)。

Example <- setRefClass(
    Class="Example",
    fields=list(
    ),
    methods=list(
        testMethodA=function() {
            "Test method A"
        },
        testMethodB=function() {
            "Test method B"
        }
    )
)

メソッドを呼び出して現在取得している$methods()もの (「 」を参照?setRefClass):

> Example$methods()
 [1] "callSuper"    "copy"         "export"       "field"        "getClass"    
 [6] "getRefClass"  "import"       "initFields"   "show"         "testMethodA" 
[11] "testMethodB"  "trace"        "untrace"      "usingMethods"

私が探しているもの:

> Example$methods()
 [1] "testMethodA" "testMethodB"
4

2 に答える 2

3

1)これを試してください:

> Dummy <- setRefClass(Class = "dummy")
> setdiff(Example$methods(), Dummy$methods())
[1] "testMethodA" "testMethodB"

2)ここで動作するように見える 2 番目のアプローチを次に示しますが、さらにテストすることをお勧めします。

names(Filter(function(x) attr(x, "refClassName") == Example$className, 
    as.list(Example$def@refMethods)))
于 2014-02-18T00:34:48.883 に答える