我有一个看起来像这样的 .java src 文件:
class Test { public void foo() { } }
我想以编程方式修改 foo(),从某种意义上说,添加一个 sysout 并使其看起来像这样:
public void foo() { System.out.println("hello world"); }
是否有任何已知的方法可以通过不直接编辑 src 文件 (RandomAccessFile) 来做到这一点?
StackOverflow 上的一些帖子引用了 CodeModel和用于代码生成目的的 Eclipse JDT 的 AST。我看到这些将有助于从头开始生成代码,而不是修改现有代码。是否有一个 API 可以让您修改现有代码,并且它的 API 与 CodeModel/Eclipse JDT 的 AST 一样简单?如果没有,最好的方法是什么?
最佳答案
您可以使用一些字节码操作库,例如Java助手。 请参阅 javaassist 教程中的 4.2 更改方法主体部分:http://www.csg.is.titech.ac.jp/~chiba/javassist/tutorial/tutorial2.html
关于Java 代码生成 : How to modify an existing java file method?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2237770/