Here’s another one that I am sure I’m going to forget how to do so I’m writing it down.
ByteBuddy works with a domain-specific language (DSL) to represent the world of manipulating Java bytecode at runtime. For a, uh, seasoned veteran (yeah, let’s go with that) like me, grappling with the so-called fluent API is quite difficult. But I’ve figured out that everything is there if you need it. You just need the magic recipe. Sometimes even with the help of an IDE the magic recipe is akin to spellcasting.
So here is the magic recipe for defining a runtime proxy that forwards certain method invocations to the return value of a method that yields up the “real” object being proxied: