The 1.1-Based Class Loader
We’ll take a bottom up approach in this example, so we’ll
start with the
class loader. In 1.1, writing a class
loader means extending the ClassLoader class and
overriding its loadClass( ) method to provide
the necessary semantics.
The implementation that we’ll use follows the same steps as we
listed in Chapter 6. However, some of those steps
rely on methods of the class loader that we haven’t yet
examined. In Java 2, these methods aren’t used because
they’re called automatically by the loadClass( ) method; in 1.1, you’re responsible for calling the
following methods:
- protected final Class findSystemClass(String name)
Attempt to find the named class by using the internal class loader to search the user’s classpath and the core JDK classes (classes.zip). If the system class is not found, a
ClassNotFoundExceptionis generated. This accomplishes a similar task as deferring to the parent class loader does in Java 2 (although the Java 2 mechanism is much more flexible).
- protected final Class findLoadedClass(String name)
Find the class object for a class previously loaded by this class loader. This method returns
nullif it cannot find the given class.
- protected final void resolveClass(Class c)
For a given class, resolve all the immediately needed class references for the class; this will result in recursively calling the class loader to ask it to load the referenced class.
In addition to implementing the loadClass( ) method, we need our class loader to provide ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access