A very good series of articles about Java reflection (how to access a class' members and methods by name), class loading, and bytecode manipulation can be found at the IBM pages (April '03 - June '04):
- Part 1: Classes and class loading
- Part 2: Introducing reflection
- Part 3: Applied reflection
- Part 4: Class transformation with Javassist
- Part 5: Transforming classes on-the-fly
- Part 6: Aspect-oriented changes with Javassist
- Part 7: Bytecode engineering with BCEL
- Part 8: Replacing reflection with code generation
- .class file format
- Hierarchy of class loaders
- fields and methods by reflection
- security of reflection, and how to disable it (e.g., to access private members(1))
- reflection performance
- Using reflection for processing command line arguments
- Inject bytecode into existing methods with javaassist
- introduce method timing into compiled code
- Java Aspect Oriented Programming (AOP)
- Intercepting class loading
- modifying class bytecode on load
- introduce method timing into code at load time
- Code conversion
- class mutilation made easy
- The Byte Code Engineering Library (BCEL) (also have a look at ASM, also, as this library tries to correct BCEL's deficits)
- using "coding constructs" instead of "bytecode assembler"
- the verifier of BCEL
- disassembling with BCEL and its graphical display
- Reflection on performance
- building a glue class
- improved performance of code generation vs. reflection
No comments:
Post a Comment