前几天一位同事向我指出了 BCEL从他的解释和快速阅读中我可以看出,这是一种在运行时修改字节码的方法。我的第一个想法是它听起来很危险,我的第二个想法是它听起来很酷。然后我又想了想,想起了 codinghorror post on monkey-patching并意识到这基本上是一回事。有没有人将 BCEL 用于任何实用的东西?我认为这基本上是运行时猴子补丁是对的,还是我遗漏了什么?
最佳答案
来自 BCEL 的常见问题解答:
Q: Can I create or modify classes dynamically with BCEL?
A: BCEL contains useful classes in the util package, namely ClassLoader and JavaWrapper.Take a look at the ProxyCreator example.
但是 monkeypatching 是……嗯……有争议,如果您的语言不支持它,您可能不应该使用它。
如果您有很好的用例,我可以建议嵌入 Jython 吗?
关于java - BCEL == monkeypatching for java 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42452/