import java.lang.reflect.InvocationHandler; import java.lang.reflect.Method; public class LoggingHandler implements InvocationHandler private final Object target; // real object
UserService proxy = (UserService) Proxy.newProxyInstance( UserService.class.getClassLoader(), new Class[]UserService.class, new LoggingHandler(realService) ); // Call methods via proxy String name = proxy.getUserName(42); proxy.updateUser(42, "John Doe");
public LoggingHandler(Object target) this.target = target;
import java.lang.reflect.Proxy; public class Main public static void main(String[] args) RealUserService realService = new RealUserService();
