Sorry - you don't need to assign the value of initFields(). I was going to do it in two lines but then realised one was enough... :)
TestClass <- setRefClass ("TestClass", fields = list (text = "character"), methods = list ( initialize = function (text) { initFields(text=paste(text,"\n")) }, print = function () { cat(text) } ) ) All the best, Jon On 28 October 2010 15:13, Daniel Lee <bear...@alum.mit.edu> wrote: > Is it possible to override the $new(...) in the reference class generator? I > have tried adding a "new" method to the methods of the class, but that is > obviously not correct. I have also tried adding it to the class generator, > but the class generator still uses the default constructor. > > As a simple example, this is the current interface: > TestClass <- setRefClass ("TestClass", > fields = list (text = "character"), > methods = list ( > print = function () {cat(text)}) > ) > test <- TestClass$new (text="Hello World") > test$print() > > I would like to override $new(...) to be something like (add a "\n" to the > end of the input, no need to specify input fields): > TestClass$methods (new = function (text) { > text <- paste (text, "\n") > methods:::new (def, text=text) > }) > > The constructor would then be: > test <- TestClass$new ("Hello World") > > This is a subtle, but useful change. I have also tried adding to TestClass a > method $newInstance(text), but that was not successful. If this is not > possible, could we consider augmenting the Reference Class interface to > include constructors? > > ______________________________________________ > R-devel@r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-devel > ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel