import javassist.*;
public class DynamicCodeGeneration {
public static void main(String[] args) throws Exception {
ClassPool classPool = ClassPool.getDefault();
CtClass ctClass = classPool.makeClass("com.example.DynamicClass");
CtMethod ctMethod = CtNewMethod.make("public void dynamicMethod() { System.out.println(\"Dynamic Method\"); }", ctClass);
ctClass.addMethod(ctMethod);
ctClass.writeFile();
Class<?> dynamicClass = ctClass.toClass();
Object dynamicObject = dynamicClass.newInstance();
dynamicClass.getMethod("dynamicMethod").invoke(dynamicObject);
}
}
<dependency>
<groupId>org.javassist</groupId>
<artifactId>javassist</artifactId>
<version>3.27.0-GA</version>
</dependency>
groovy
dependencies {
implementation 'org.javassist:javassist:3.27.0-GA'
}