0

我知道使用支持代理的库(javassist、JDK 动态代理等)可以增强以在运行时实现接口。

我的问题是:是否可以增强实例化对象以在运行时实现接口(并同样提供适当的方法处理程序)。

4

1 回答 1

2

不,我们不能更改已经加载的类。而且我们不能替换加载的类(在类加载器中)。

如果你有机会

  • 使用自定义类加载器加载类
  • 卸载类加载器(也应该卸载类)
  • 使用新的类加载器实例再次加载修改后的类

但那是非常非常黑的魔法……

于 2011-08-30T17:42:05.500 回答