java - BCEL == monkeypatching for java 吗?

标签 java bytecode monkeypatching bcel

前几天一位同事向我指出了 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/

相关文章:

javascript - 如何在自定义Object.prototype.xxx函数中获取对象本身?

java - 实现 CQRS 模式时如何使用 Spring 处理 JWT 身份验证?

java - 如何进行 Java 字节码 active 分析?

java - 从 jdbc 检索数据

python - python函数字节码中的零是什么意思?

Java-第 0 个局部变量何时不是 'this'?

python - 同时在进程中使用 Celery 并在任务中使用 gevent

python - 扩展类(Monkey Patching)如何在 Python 中工作?

java - 为什么我要加上 "static"

java - Hibernate envers 是否提供有关哪个用户在什么时间进行更改的信息