1. 示例
首先,定义一个接口:
public interface Staff {
void work();
}
然后,新增一个类并实现上面的接口:
public class Coder implements Staff {
@Override
public void work() {
System.out.println("认真写bug……");
}
}
假设现在有这么一个需求:在不改动以上类代码的前提下,对该方法增加一些前置操作或者后置操作。
接下来就来讲解下,如何使用JDK动态代理来实现这个需求。
首先,自定义一个调用处理器,实现java.lang.reflect.InvocationHandler
接口并重写invoke
方法:
public class AttendanceInvocationHandler implements InvocationHandler {
private final Object target;
public AttendanceInvocationHandler(Object targ