import javassist.ClassPool;
import javassist.CtClass;
import javassist.CtMethod;
import javassist.CtNewMethod;
public class HelloWorld {
public static void main(String[] args) throws Exception {
ClassPool pool = ClassPool.getDefault();
CtClass cc = pool.get("com.example.MyClass");
CtMethod m = cc.getDeclaredMethod("hello");
m.insertBefore("{ System.out.println(\"Hello, \"); }");
CtMethod newMethod = CtNewMethod.make("public void newMethod() { System.out.println(\"New method!\"); }", cc);
cc.addMethod(newMethod);
cc.writeFile();
MyClass myClass = (MyClass) cc.toClass().newInstance();
}
}
class MyClass {
public void hello() {
System.out.print("World!");
}
}