Learn R Programming

R.oo (version 1.21.0)

finalize.Object: Finalizer methods called when object is clean out

Description

Finalizer methods are called just the moment before the object is about to be deleted by the garbage collector.

If creating a custom finalize() method for a subclass in a package, then it needs to be exported in the NAMESPACE of that package. If not, it will not be found nor called and there will be no error message.

A finalizer method should never be called explicitly!

Usage

# S3 method for Object
finalize(this, ...)

Arguments

...

Not used.

See Also

For more information see Object.

Examples

Run this code
# NOT RUN {
setConstructorS3("MyClass", function() {
  extend(Object(), "MyClass")
})

setMethodS3("finalize", "MyClass", function(this, ...) {
  cat(as.character(this), "is about to be removed from the memory!\n")
})

o <- MyClass()
o <- MyClass()
o <- MyClass()
o <- MyClass()
gc()

## MyClass: 0x01BE602C is about to be removed from the memory!
## MyClass: 0x01BFF634 is about to be removed from the memory!
## MyClass: 0x01C13584 is about to be removed from the memory!
##          used (Mb) gc trigger (Mb)
## Ncells 229903  6.2     467875 12.5
## Vcells  53725  0.5     786432  6.0

rm(o)
## MyClass: 0x01C578B0 is about to be removed from the memory!
##          used (Mb) gc trigger (Mb)
## Ncells 229903  6.1     467875 12.3
## Vcells  53725  0.5     786432  6.0
# }

Run the code above in your browser using DataLab