The
idea of run-time type identification (RTTI) seems fairly simple at first: it
lets you find the exact type of an object when you have a handle to only the
base type.
However,
the
need
for RTTI uncovers a whole plethora of interesting (and often perplexing) OO
design issues and raises fundamental questions of how you should structure your
programs.
This
chapter looks at the ways that Java allows you to discover information about
objects and classes at run-time. This takes two forms:
“traditional” RTTI, which assumes that you have all the types
available at compile-time and run-time, and the “reflection”
mechanism in Java 1.1,
which allows you to discover class information solely at run-time. The
“traditional” RTTI will be covered first, followed by a discussion
of reflection.