4

私は持っている

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 でこれを行うにはどうすればよいですか? ありがとうございます!

4

1 に答える 1

0

「this」は、スタックの最初のアイテムとして渡されます。したがって、それをローカル変数に格納する方法は、jvm 命令 ALOAD および ASTORE を使用することです。

たとえば、次のコードは、対応する jvm 命令を生成します。

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

   ALOAD 0      
   ASTORE 1     
   ALOAD  0  
   ASTORE 2           
   RETURN        
于 2013-07-23T09:20:37.810 に答える