java reflection experiments
So there I was, sitting on a train bound home, and feeling creative. I powered up my laptop, switched to Emacs and began hacking away - just to realize that I have no documentation on available on the computer. At all. (Two years ago, I would've used my fancy bluetooth phone and surfed to the nearest Javadoc site using GPRS, but I tend to lose all my cool gadgets so no more mobile Internet for me.)
What to do, when you feel like being productive but still lack the oh-so-vital API reference? I don't know all the methods of the javax.imageio by heart. I don't remember all methods in the classes of package javax.servlet.http, even though I've hammered them over and over hundreds of times.
For some reason though, I still remember some basics of the Reflection API. One reason being, of course, that the basic reflection API is very inituitive and straight-forward. There's the basic Class.forName(), and Class' getMethods() and getFields(), Method's getReturnType(), and so on. So I figured I could write a simple JSP to list the methods and fields of the classes I wanted to use. So that I did. Eventually, I reflected the Reflection API to see how I could retreive information about the classes and interfaces. Later on, I even used reflection to dynamically find and invoke the reflection getters to be able to retreive static values of static class fields.
Of course, I ended up spending the entire train trip doing pointless wheel-invention - a sort of a poor man's reflective Javadoc without the actual documentation - instead of actual billable work. But hey, it was a fun trip to reflection land, and yet another bulky (and buggy!) JSP-hack to add to the list. I never quite finished it, and some things I just couldn't figure out without access to the API documentation (such as how to properly interpret the modifier bits). And now, with access to all the documentation I can handle, the thrill just isn't there anymore. :-)
Anyway, see the result here (view source).