在Java类方法上插入(没有接口)



我想插入类方法之间以动态扩展对象。

我已经知道java.lang.reflect.Proxy的东西,但它太有限了,无法进行真正的插入。

从使用java.lang.reflect.Proxy在java类方法上插入,第一个限制是:

(…)必须通过代理类的实例调用该方法。因此,例如,嵌套方法调用将不会被截获。

最糟糕的一个:

(…)该方法必须已在要代理的对象实现的接口中定义。不能通过未实现接口的类的实例来调用它。

我想在运行时扩展的对象没有实现任何接口,最糟糕的是,我需要覆盖的方法是嵌套的和私有的。

我知道这在Python&C、 上面引用的文章说这是可能的:

本系列的下一篇文章将介绍一些克服这些限制的技术。

很遗憾,我找不到这篇文章。

尝试使用CGLIB:

这是我几年前写的一个教程,它非常简单地介绍了CGLIB:CGLIB介绍

如果您需要更多的电源,请考虑使用AspectJ

希望这能帮助

相关内容

  • 没有找到相关文章

最新更新