import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;
public class StaticProxy {
public static void main(String[] args) {
service s=new impsevice();
service ser= (service) facProxy.getProxy(s);
ser.show();
}
}
interface service{
void show();
}
class impsevice implements service{
@Override
public void show() {
System.out.println("shuaio");
}
}
class impInvocationHandler implements InvocationHandler{
private final Object target;
impInvocationHandler(Object target){
this.target=target;
}
@Override
public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
System.out.println("before");
Object result=method.invoke(target);
System.out.println("after");
return result;
}
}
class facProxy{
public static Object getProxy(Object target){
return Proxy.newProxyInstance(
target.getClass().getClassLoader(),
target.getClass().getInterfaces(),
new impInvocationHandler(target)
);
}
}
jdk动态代理的实现
最新推荐文章于 2025-03-17 16:36:32 发布