getClass {methods} | R Documentation |
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 see ?Methods
and the links from that documentation.
getClass("numeric") ## a built in class cld <- getClass("thisIsAnUndefinedClass", .Force = TRUE) cld ## a NULL prototype ## If you are really curious: str(cld) ## Whereas these generate errors: try(getClass("thisIsAnUndefinedClass")) try(getClassDef("thisIsAnUndefinedClass"))