将超类强制转换为子类

时间:2017-03-14 23:15:28

标签: r coercion reference-class

我有一个类D,它包含一个虚拟类A。我想将包含D的{​​{1}}部分强制转换为A的两个子类之一。这可能与R的参考类有关吗?

所需的输出是让一个新的A类对象继承DB,这两个对象都是C的子类。我的动机是让AB的字段位于顶层。我试图避免将超类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中的字段。

0 个答案:

没有答案