getClass {methods}R Documentation

Get Class Definition


Get the definition of a class.


getClass(Class, .Force = FALSE, where)
getClassDef(Class, where, package)


Class the character-string name of the class.
.Force if TRUE, return NULL if the class is undefined; otherwise, an undefined class results in an error.
where environment from which to begin the search for the definition; by default, start at the top-level (global) environment and proceed through the search list.
package the name of the package asserted to hold the definition. Supplied instead of where, with the distinction that the package need not be currently attached.


A call to getClass returns the complete definition of the class supplied as a string, including all slots, etc. in classes that this class extends. A call to getClassDef returns the definition of the class from the environment where, unadorned. It's usually getClass you want.

If you really want to know whether a class is formally defined, call isClass.


The object defining the class. This is an object of class "classRepEnvironment". However, do not deal with the contents of the object directly unless you are very sure you know what you're doing. Even then, it is nearly always better practice to use functions such as setClass and setIs. Messing up a class object will cause great confusion.


The R package methods implements, with a few exceptions, the programming interface for classes and methods in the book Programming with Data (John M. Chambers, Springer, 1998), in particular sections 1.6, 2.7, 2.8, and chapters 7 and 8.

While the programming interface for the methods package follows the reference, the R software is an original implementation, so details in the reference that reflect the S4 implementation may appear differently in R. Also, there are extensions to the programming interface developed more recently than the reference. For a discussion of details and ongoing development, see the web page and the pointers from that page.

See Also

Classes, setClass, isClass.


getClass("numeric") ## a built in class

cld <- getClass("thisIsAnUndefinedClass", .Force = TRUE)
cld ## a NULL prototype
## If you are really curious:
## Whereas these generate errors:

[Package methods version 2.1.0 Index]