我被javassist困住了。我在运行时向我的对象类添加了一个新方法。
我的对象类:
package tmp3;
public class Car {
public Car(){}
}
我的测试课:
package tmp3;
import java.lang.reflect.Method;
import javassist.ClassPool;
import javassist.CtClass;
import javassist.CtMethod;
import javassist.CtNewMethod;
public class TestMain {
public static void main(String[] args) {
try {
CtClass ctclass = ClassPool.getDefault().get("tmp3.Car");
CtMethod newmethod = CtNewMethod.make("public void testPrint() { System.out.println(\"test ok\"); }",ctclass);
ctclass.addMethod(newmethod);
ctclass.writeFile();
for(Method me: ctclass.toClass().getDeclaredMethods()){ //test print, ok
System.out.println(me.getName());
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
但在那之后,我不知道如何调用(调用)它。我读过 javassist 没有调用方法的能力。那么如何调用我刚刚用 javassist 添加的方法呢?
我在两天内尝试了很多东西,但没有成功。你能帮我解决这个问题吗?