import javassist.*;
public class JavassistExample {
public static void main(String[] args) throws Exception {
ClassPool pool = ClassPool.getDefault();
CtClass ctClass = pool.get("com.example.ExistingClass");
CtMethod ctMethod = ctClass.getDeclaredMethod("existingMethod");
ctMethod.insertBefore("{ System.out.println(\"Before method\"); }");
ctMethod.insertAfter("{ System.out.println(\"After method\"); }");
CtClass newClass = pool.makeClass("com.example.NewClass");
CtMethod newMethod = CtNewMethod.make("public void newMethod() { System.out.println(\"New method\"); }", newClass);
newClass.addMethod(newMethod);
ctClass.writeFile();
newClass.writeFile();
System.out.println("Classes modified and generated successfully!");
}
}
<dependency>
<groupId>org.javassist</groupId>
<artifactId>javassist</artifactId>
</dependency>
groovy
dependencies {
}