import javassist.*;
public class JavassistExample {
public static void main(String[] args) throws NotFoundException, CannotCompileException, InstantiationException, IllegalAccessException {
ClassPool pool = ClassPool.getDefault();
CtClass ctClass = pool.makeClass("com.example.MyClass");
CtField field = new CtField(pool.get("java.lang.String"), "message", ctClass);
ctClass.addField(field);
CtMethod method = CtNewMethod.make("public void printMessage() { System.out.println(message); }", ctClass);
ctClass.addMethod(method);
Class<?> clazz = ctClass.toClass();
Object obj = clazz.newInstance();
clazz.getMethod("printMessage").invoke(obj);
}
}
<dependency>
<groupId>org.javassist</groupId>
<artifactId>javassist</artifactId>
<version>3.27.0-GA</version>
</dependency>