插入Java类方法(无接口)

时间:2012-01-30 09:04:48

标签: java reflection interposing

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

我已经了解了java.lang.reflect.Proxy的内容,但它实际上并没有真正插入。

Using java.lang.reflect.Proxy to Interpose on Java Class Methods开始,第一个限制是:

  

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

最糟糕的一个:

  

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

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

我知道这在Python和Python中相当容易。 C,以及上面引用的文章说它可能是:

  

本系列的下一篇文章将说明克服这些限制的一些技巧。

不幸的是,我无法找到这篇文章。

1 个答案:

答案 0 :(得分:3)

尝试使用CGLIB:

这是我几年前写的一个教程,它对CGLIB的简单介绍:CGLIB intro

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

希望这有帮助