<dependencies> <dependency> <groupId>org.ow2.asm</groupId> <artifactId>asm</artifactId> <version>9.2</version> </dependency> </dependencies> ClassReader classReader = new ClassReader(className); ClassWriter classWriter = new ClassWriter(ClassWriter.COMPUTE_FRAMES); ClassVisitor classVisitor = new MyClassVisitor(classWriter); classReader.accept(classVisitor, ClassReader.EXPAND_FRAMES); byte[] modifiedClassBytes = classWriter.toByteArray(); class MyClassVisitor extends ClassVisitor { public MyClassVisitor(ClassVisitor classVisitor) { super(Opcodes.ASM9, classVisitor); } @Override public MethodVisitor visitMethod(int access, String name, String descriptor, String signature, String[] exceptions) { System.out.println("Method: " + name); return super.visitMethod(access, name, descriptor, signature, exceptions); } } ClassLoader classLoader = new CustomClassLoader(); Class<?> modifiedClass = classLoader.defineClass(className, modifiedClassBytes); Object instance = modifiedClass.newInstance(); Method method = modifiedClass.getDeclaredMethod("methodName"); method.invoke(instance);


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