我知道我需要为此使用ASM。我厌倦了阅读一些教程,但是其中大多数教程已经过时或不支持我想做的事情。
我有一个jar文件,我想向某个类添加某个方法,然后在该类中已经存在的另一个方法的开头添加该方法。
所以让我们说原始类的反编译代码看起来像这样:
public class Addon {
public void enable(){
//code
}
}
而且我想使它看起来像这样:
public class Addon {
public void enable(){
setupEnv();
//code
}
public void setupEnv(){
//setup env
}
}
而且setupEnv()
方法已经存在于我的一个类中因此,基本上我需要从自己的程序中读取setupEnv()
方法,然后将其注入另一个jar中的另一个类。
为什么您需要为此使用ASM?您可以使用许多其他更简单的方法。
Addon
并使用它/使用接口setupEnv
之前使用Java代理来调用enable
ASM和类似技术应该是您的最后选择。