目标对象接口
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();
    }
}