java - 使用 BCEL 调用方法

标签 java methods bytecode bcel

这个社区中有没有使用过 BCEL 的专家,可以指导我使用 BCEL 调用方法 就像我们使用 java 反射一样。

注意:为了支持您的答案,任何类型的书籍或网络引用都将成为帮助的重要来源。

现在我看到了一个名为 Visitor 的界面包含方法 visitInvokeInstruction() 现在有没有一种方法可以让我调用这些指令(在堆栈上形成一个方法)。

希望这段代码能给大家提供很多我想要的解释。

提前致谢

最佳答案

最好的方法是使用 BCELifier,这是 BCEL 附带的一个类,它接受一个类文件并发出使用 BCEL 发出该类文件的源代码 - 本质上,它不会将类文件反编译为字节码或原始 Java 源代码,而是发出该类文件所需的 BCEL 代码。

对于您的情况,只需编写一个简单的虚拟类,其中包含您想要生成的代码,然后运行 ​​BCELifier 并检查结果。

关于java - 使用 BCEL 调用方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5946915/

相关文章:

Java : read and write a file together

C# 在方法中初始化一个 const 变量

java - 主循环中调用方法的困难(温度转换)

java - 使用 Findbugs 编写检测器以搜索 "System.out.println"的用途

java - 在循环内声明一个变量更有效,还是仅仅重新分配它更有效?

java - 如何在java中将实体图(.vpp)转换为数据库或文本文件

同一类和相同实现中的 JAVA 方法,但作为参数的对象类型不同

java - 字节码指令和处理器操作之间的关系

c - 在字节码中存储值

java - 如何使 Java Private 方法内的变量值对另一个 java 文件可用/可见?