假设我想创建一个带有两个插槽 A 和 B 的类“myClass”。
现在我想要一个validObject函数来确保A和B的长度相同
same_length <- function(object){
if(length(object@A)!=length(object@B)) {
"vectors are not the same length"
} else TRUE
}
setClass("myClass", representation(A="numeric", B="numeric"),
validity=same_length)
我在某处看到了一个函数,可以确保类在初始化时有效:
setMethod("initialize", "myClass", function(.Object, ...){
value <- callNextMethod()
validObject(value)
value
})
如果我尝试会发送错误
newObj <- new("myClass", A=c(1,2,3), B=c(1,2))
但如果我这样做
newObj <- new("myClass")
newObj@A <- c(1,2,3)
newObj@B <- c(1,2)
没有错误被抛出。一旦新的插槽分配未验证,我如何让它抛出错误?