java.lang.reflect.InvocationHandler
Proxy
Enhancer
java.lang.reflect.InvocationHandler#invoke(java.lang.Object, java.lang.reflect.Method, java.lang.Object[])