Explaining the Java Reflection API and providing techniques for using it effectively, this guide describes the capabilities that allow a program to examine and modify itself at runtime. The java.lang.reflect package and its uses are covered, including a detailed discussion of Java's dynamic proxy facility. Less obvious reflective capabilities, such as call stack introspection and the Java class loader, are addressed. In recognition of the limitations of Java Reflection, the various ways to use Reflection to generate code and surpass these limitations are detailed. A discussion of performance analysis techniques and a look ahead at what is new in JDK 1.5 is included.
A really great book, but can be replaced with few pages on the web currently. Although this book gives you a lot of code examples and even your own code generation framework. Nice to read, but not necessary.
This book is a little outdated. It was written before Java 5 and generics were released. At times, the presentation of topics is also a little dry. However, it does have good examples and information on the reflection api and implementation in the java language.