使用Javassist

时间:2018-01-17 13:33:36

标签: java bytecode javassist bytecode-manipulation

我正在使用 Javassist 来操作。文件的字节码。我必须检索&修改现有方法的字节码,并将新字节码写入新方法。

假设我的类文件中有一个方法Method_old(),其中包含以下字节码

   0: bipush        10
   2: istore_1
   3: bipush        20
   5: istore_2
   6: getstatic     #2                  // Field java/lang/System.out:Ljava/io/PrintStream;
   9: iload_1
  10: invokevirtual #11                 // Method java/io/PrintStream.println:(I)V
  13: return

我想修改它,如下所示,

   0: bipush        10
   2: istore_1
   3: getstatic     #2                  // Field java/lang/System.out:Ljava/io/PrintStream;
   6: iload_1
   7: invokevirtual #11                 // Method java/io/PrintStream.println:(I)V
   8: return

并将其存储到名为method_new()的新方法中。我怎么能使用Javassist这样做。

0 个答案:

没有答案