我知道使用反射可以做一些很好的事情,例如调用方法或更改字段的值。但是,是否可以在运行时和以编程方式进行更重的代码修改?
例如,如果我有一个方法:
public void foo(){
this.bar = 100;
}
我可以写一个程序来修改这个方法的内部结构,注意到它为一个字段分配了一个常量,然后把它变成下面这样:
public int baz = 100;
public void foo(){
this.bar = baz;
}
也许 Java 并不是真正可以做这种事情的语言——如果不是,我愿意接受一些语言的建议,这些语言可以让我基本上以这种方式重新解析或检查代码,并能够如此精确地改变它。不过,我可能在这里做白日梦,所以请告诉我是否也是这种情况。