Java 使用BCEL调用方法

Java 使用BCEL调用方法,java,methods,bytecode,bcel,Java,Methods,Bytecode,Bcel,在这个社区中,是否有任何与BCEL合作过的专家可以指导我使用BCEL调用方法,就像我们使用java反射一样 注意:为了支持你的答案,任何种类的书籍或网络参考都将成为一个很好的帮助来源 现在我看到了一个名为containing methodvisitInvokeInstruction() 现在有一种方法可以调用这些指令(在堆栈上形成一个方法) 希望这段代码给你的人很多解释我想要什么 提前感谢最好的方法是使用BCELifier,它是BCEL附带的一个类,接受一个类文件并发出使用BCEL发出该类文件的

在这个社区中,是否有任何与BCEL合作过的专家可以指导我使用BCEL调用方法,就像我们使用java反射一样

注意:为了支持你的答案,任何种类的书籍或网络参考都将成为一个很好的帮助来源

现在我看到了一个名为containing methodvisitInvokeInstruction() 现在有一种方法可以调用这些指令(在堆栈上形成一个方法)

希望这段代码给你的人很多解释我想要什么


提前感谢

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


在您的情况下,只需编写一个简单的伪类,其中包含要生成的代码,然后运行BCELifier并检查结果。

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


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

我很确定如果存在这种方法,它将在内部使用反射,那么为什么不首先使用它呢?我正在查看您的代码,看起来您正在编写一个代理类,用于测量代理类中方法执行所需的时间,对吗?@Tassos Bassoukos,是的,您退出了,对,但这段代码不完整,它没有执行方法,这是我需要解决的关键问题我很确定如果存在这种方法,它将在内部使用反射,那么,为什么不首先使用它呢?我正在查看您的代码,看起来您正在编写一个代理类,用于测量在代理类中执行方法所需的时间,对吗?@Tassos Bassoukos,是的,你说得对,但这段代码不完整,它没有执行我需要解决的关键问题的方法。你能举个小例子来支持你的答案吗kindly@zaree-@McDowell你的链接BCEL积极退出,尽管如此,调用一个方法并没有任何问题。我会发布一些代码,请查看它,然后再给我一些指导。你可以给出一些小例子来支持你的答案吗kindly@zaree-@McDowell你的链接BCEL积极退出,尽管如此,调用一个方法并没有任何问题。我将发布一些代码,请查看它,然后再给我一些指导