While Java’s strict type system is a great help for avoiding programming errors, it also takes away some of the flexibility that developers appreciate when using dynamic languages. By using runtime code generation, it is possible to bring back some flexibility back to the Java virtual machine.
For this reason, runtime code generation is used by many state-of-the-art Java frameworks for implementing POJO-centric APIs but it also opens the door for assembling more modular applications. This presentation gives an overview on the various ways code generation and manipulation is currently used on the Java platform, both by library developers and end users. Furthermore, it discusses the up- and downsides of several code generation libraries such as ASM, Javassist, cglib and Byte Buddy.
Video producer: http://www.jfokus.com