我有一个类D
,它包含一个虚拟类A
。我想将包含D
的{{1}}部分强制转换为A
的两个子类之一。这可能与R的参考类有关吗?
所需的输出是让一个新的A
类对象继承D
或B
,这两个对象都是C
的子类。我的动机是让A
或B
的字段位于顶层。我试图避免将超类C
存储在A
的一个字段中,这是明显的解决方法。
D
结果应包含类## Toy classes
A <- setRefClass("A", fields=c(f1="numeric", f2="numeric"), contains="VIRTUAL")
## B and C are subclass of A
B <- setRefClass("B", fields=c(b_field="numeric"), contains="A")
C <- setRefClass("C", fields=c(c_field="numeric"), contains="A")
## D is a subclass of A as well, but can take either a B or a C
D <- setRefClass("D", fields=c(d_field="numeric"), contains = "A")
setAs("A", "B", def = function(from) {
# ??? what goes here?
})
d <- D$new()
result <- as(d, "B")
的唯一字段,类D
中的所有字段以及类A
中的字段。