Use named arguments rather than parsing ...
; make sure that the
default constructor works when invoked with no arugments
Part.initialize<-function(..., var1=vector(), var2=character()){
callSuper(..., var1=var1, var2=as.character(var2))
}
Part<-setRefClass(Class = "Part"
,fields = c(var1 = "ANY", var2 = "character")
,methods = list(initialize=Part.initialize))
Only interpret arguments for the class under consideration
A.initialize<-function(..., var3=list()){
callSuper(..., var3=as.list(var3))
}
A<-setRefClass(Class = "A"
,contains = "Part"
,fields = list(var3 = "list")
,methods = list(initialize=A.initialize))
Simple test cases
Part()
A()
A(var3=list(a=1))