Is there a quick and dirty way to test whether an instance is from a reference class?
The standard R object tests yield the following – but nothing that seems to exclusively mark a reference class.
classy <- setRefClass('classy',
fields = list(
count = 'numeric'
),
methods = list(
initialize = function( data=NULL ) {
.self$data <<- data
}
)
)
instance <- classy$new() # instantiation
isS4(instance) # TRUE
mode(instance) # "S4"
typeof(instance) # "S4"
class(instance) # [1] "classy" attr(,"package") [1] ".GlobalEnv"
dput(instance) # new("classy", .xData = <environment>)
str(instance) #
# Reference class 'classy' [package ".GlobalEnv"] with 1 fields
# $ count: num(0)
# and 13 methods, of which 1 are possibly relevant:
# initialize
Try this:
This is found in the “Inheritance” section of
help(ReferenceClasses). And I suspect that John Chambers might object to calling this “dirty”.Apropos Hadley’s comment,
isis documented to behave mostly the same asinheritsbut has the added capacity to recognize conditional inheritance: