Я изменяю тело метода getMessage()
моего TestClass
с помощью Javassist следующим образом:
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()
? Я делаю это правильно?