替代方法没有源代码
我有一些类A
没有源代码和这个类使用了一些类B
2层的方法,如#get(): int
和标准的Java库设置#set(int value): void
!替代方法没有源代码
我可以替代这2种方法或所有类改变A
这个类的一些功能?
例如,此类A
使用标准类B
来保存一些信息,但我希望使用此另一个容器进行某些操作。有可能吗?
你可以使用一些字节码操作库,例如java-bytecode-asm。然而一个更简单的方法是使用aspectj和编织类,无论是静态或动态。 AspectJ的甚至可以编织标准的Java库(rt.jar
)。
感谢您的信息!也许你有一些例子如何使用'AspectJ'来替换方法? – dzav 2012-04-13 21:03:51
@vanveber:没有例子,但很少的提示:搜索*围绕建议* - 不调用包装的方法。 – 2012-04-13 21:08:14
我不确定,但我相信你想要做的是 扩展类,然后重写该方法。
正如柯克沃尔说,这看起来并不像Java。
这些方法的签名不是Java。 – 2012-04-13 19:45:46