Java-Specific Question

Don Park donpark at quake.net
Sat Apr 4 04:37:29 BST 1998


David,

>Here's a Java question.  Let's say that I have a class with a method
>
>  public void parse (String publicId, String systemId, Reader reader)
>    throws java.lang.Exception;
>
>What will happen if the "java.io.Reader" class is not available on my
>system (perhaps because I'm using a 1.0.2 browser), but I never invoke
>this method (I'm assuming that I compiled my code under JDK 1.1 or JDK
>1.2)?

ClassNotFoundException will be thrown when the class is loaded.  What you
probably want is to load class by name (i.e. Class.forName()) rather than
importing it directly.  This is the trick I used to make MSXML
platform-independed.  At runtime, MSXML tries to load the native stream
class and falls back to pure Java version if the native stream class is not
available (exception will be thrown during Class.forName()).

Java Class file contains a constant pool where all reference to external
classes are located along with other constants (i.e. strings, initializer
values).  Since all the references are so nicely situated, JVM
implementations typically enumerate thru the constant table and resolve any
class references there when the class is loaded without checking to see if
the class is actually used.

When Class.forName() is used, you will have the string constant but not the
class reference entry.  Comes in handy in tight places.

Regards,

Don Park
http://www.docuverse.com/personal/index.html



xml-dev: A list for W3C XML Developers. To post, mailto:xml-dev at ic.ac.uk
Archived as: http://www.lists.ic.ac.uk/hypermail/xml-dev/
To (un)subscribe, mailto:majordomo at ic.ac.uk the following message;
(un)subscribe xml-dev
To subscribe to the digests, mailto:majordomo at ic.ac.uk the following message;
subscribe xml-dev-digest
List coordinator, Henry Rzepa (mailto:rzepa at ic.ac.uk)




More information about the Xml-dev mailing list