我想在类方法之间插入以动态扩展对象。
我已经知道 java.lang.reflect.Proxy 的东西,但它太有限了,无法进行真正的插入。
从Using java.lang.reflect.Proxy to Interpose on Java Class Methods,第一个限制是:
(...) 必须通过代理类的实例调用该方法。因此,例如,嵌套方法调用不会被拦截。
最糟糕的一个:
(...) 该方法必须已在由被代理的对象实现的接口中定义。不能通过没有实现接口的类的实例来调用它。
我想在运行时扩展的对象没有实现任何接口,最糟糕的是,我需要覆盖的方法是嵌套的和私有的。
我知道这在 Python 和 C 中相当容易,上面引用的文章说这是可能的:
本系列的下一篇文章将说明一些克服这些限制的技术。
不幸的是,我找不到这篇文章。