import io.github.karlatemp.iroh.Injector;
import io.github.karlatemp.iroh.ProceedingPoint;
public class Example {
public static void main(String[] args) throws Exception {
Injector injector = new Injector();
injector.before("com.example.MyClass.myMethod()", (ProceedingPoint point) -> {
System.out.println("Before method execution");
point.proceed();
Object returnValue = point.getReturnValue();
System.out.println("After method execution");
point.setReturnValue("Modified value");
point.proceed();
});
Class<?> modifiedClass = injector.loadClass(Example.class);
Object instance = modifiedClass.newInstance();
instance.getClass().getMethod("myMethod").invoke(instance);
}
}
class MyClass {
public void myMethod() {
System.out.println("Original method");
}
}