gpt4 book ai didi

java - BCEL 传递 "this"参数

转载 作者:搜寻专家 更新时间:2023-11-01 03:54:32 27 4
gpt4 key购买 nike

我有

public class SecondClass{
MainClass main;
public SecondClass(MainClass main){
this.main=main;
}
....
}

并且在MainClass(.class文件)中有aMethod

    public class MainClass(){
public void aMethod(){
//I want to insert
//SecondClass sc = new SecondClass(this);
}
}

我如何使用 Apache BCEL 执行此操作?非常感谢!

最佳答案

'this' 作为堆栈中的第一项传递。因此,您可以使用 jvm 指令 ALOAD 和 ASTORE 将其存储到局部变量中。

例如下面的代码生成相应的jvm指令。

public void test()
{
Test var1 = this;
Test var2 = this;
}

ALOAD 0
ASTORE 1
ALOAD 0
ASTORE 2
RETURN

关于java - BCEL 传递 "this"参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12558461/

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