They're used to discover information about an Object, methods, fields, inheritence info etc. For example, right now I'm writing a method that will take an Object and write it out to .XML. Since I have no idea what type of Obejct this method might be getting sent, I'm going to use reflection to discover information on that Object so I can write out all the fields and results of accessor methods.
Check out the tutorial at
http://java.sun.com/docs/books/tutorial/reflect/index.html [This message has been edited by Michael Hildner (edited February 04, 2001).]