我通过 Javassist修改我的getMessage()
方法体,如下所示:TestClass
ClassPool cp = new ClassPool(true);
CtClass ctClass = cp.get("my.test.javassist.TestClass");
CtMethod ctMethod = ctClass.getDeclaredMethod("getMessage");
ctMethod.setBody("{ return \"Hello from javassist\"; }");
ctClass.toClass();
TestClass c = new TestClass();
System.out.println(c.getMessage());
它运作良好。但是,如果我删除ctClass.toClass()
方法调用,则正文替换不起作用。为什么?
我应该如何正确替换我的getMessage()
方法的主体?我做对了吗?