0

我正在制作一个工具来在运行时执行多项检查(这将在 CI 服务器中运行),而我需要的一件事就是更改某些类的实现以提供我需要的数据(基本上,我需要知道某些类中何时发生某些特定更改)。

这是一个 OSGi 应用程序(我不知道这是否是正确的名称),我正在使用 AspectJ 来捕获这些信息,但是 AspectJ 不会更改 JDK 类,而且我可以使用 LinkedList 等一些类来解决我的问题(不是具有非最终方法的最终类),我必须对 StringTokenizer 或 StringBuilder 之类的类做同样的事情(我不能继承或注入带有方面的代码)。

经过几次搜索后,我对 HotSwap、自定义类加载器和我发现的一些其他解决方案有很多疑问,我不知道它们是否能满足我的需求。

我正在使用带有 Java 6 的 Eclipse Indigo(如果它是一个仅适用于 IDE 的解决方案也可以)

4

1 回答 1

3

查看 Apache BCEL 以方便的方式操作 Java Final 类的字节码。这样,您可以创建自己的自定义类加载器、加载类、操作字节码以包含您自己的检查,然后将修改后的类传递给您的运行时程序。

http://commons.apache.org/proper/commons-bcel/

于 2013-04-02T09:58:28.527 回答