目标对象接口
package proxy;
public interface TargetInterface {
void targetMethod();
}
目标对象
package proxy;
public class Target implements TargetInterface{
@Override
public void targetMethod() {
System.out.println("-----目标方法执行-----");
}
}
代理对象测试
package proxy;
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;
public class ProxyTest {
public static void main(String[] args){
Target target = new Target();//目标对象
TargetInterface proxy = (TargetInterface)Proxy.newProxyInstance(
Target.class.getClassLoader(),//目标对象的类加载器
Target.class.getInterfaces(),//目标对象所有实现的接口
new InvocationHandler() {//
@Override
public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
System.out.println("-----目标方法执行前-----");
method.invoke(target,args);//执行目标方法
System.out.println("-----目标方法执行后-----");
return null;
}
}
);
proxy.targetMethod();
}
}