<dependency> <groupId>org.javassist</groupId> <artifactId>javassist</artifactId> <version>3.27.0-GA</version> </dependency> public class Person { public void sayHello() { System.out.println("Hello!"); } } public class Main { public static void main(String[] args) throws NotFoundException, CannotCompileException, IllegalAccessException, InstantiationException { ClassPool classPool = ClassPool.getDefault(); CtClass ctClass = classPool.get("com.example.Person"); CtMethod ctMethod = ctClass.getDeclaredMethod("sayHello"); ctMethod.insertBefore("{ System.out.println(\"Before sayHello\"); }"); ctMethod.insertAfter("{ System.out.println(\"After sayHello\"); }"); Class<?> modifiedClass = ctClass.toClass(); Person person = (Person) modifiedClass.newInstance(); person.sayHello(); } } Before sayHello Hello! After sayHello


上一篇:
下一篇:
切换中文