gpt4 book ai didi

java - 如何继承/替换java的final类?

转载 作者:行者123 更新时间:2023-12-01 23:54:56 24 4
gpt4 key购买 nike

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

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

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

我正在使用 Eclipse Indigo(如果它是一个只能在 IDE 上运行的解决方案也可以)和 Java 6

最佳答案

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

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

关于java - 如何继承/替换java的final类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15760793/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com