插入Java类方法(无接口)

插入Java类方法(无接口),java,reflection,interposing,Java,Reflection,Interposing,我想在类方法之间插入以动态扩展对象 我已经知道java.lang.reflect.Proxy的内容,但是它太有限了,无法进行真正的插入 从中,第一个限制是: (…)必须通过代理类的实例调用该方法。例如,嵌套方法调用就不会被拦截 最糟糕的是: (…)该方法必须在由代理对象实现的接口中定义。不能通过未实现接口的类的实例调用它 我想在运行时扩展的对象没有实现任何接口,最糟糕的是,我需要重写的方法是嵌套的和私有的 我知道这在Python&C中相当容易,上面引用的文章说这是可能的: 本系列的下一篇文章将说

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

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

从中,第一个限制是:

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

最糟糕的是:

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

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

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

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

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

尝试使用CGLIB:

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

如果你需要更多的动力,考虑使用< /P>


希望这有帮助

那篇文章是2001年的。它已经11岁了。你可能想尝试找到一些不那么史前的东西作为实验的基础。这种变化通常被认为是非常糟糕的编程实践。它可能导致无法维护和不支持的代码。你的建议通常有更好的方式。我想你脑子里对一个问题有一个特别的解决办法。你会考虑其他的方法来解决同样的问题吗?有时候,黑客是唯一的方法。如果你对这个(长的)故事感兴趣,给我发一个PM=)我忘了确切地说它与Android有关。AspectJ与Android兼容吗?