動態代理
Proxy動態代理是基于實現接口的,被代理類實現了某個功能接口,
代理類實現invocationHandler 接口重寫invoke(Object proxy, ?Method method , class 代理類)
用Proxy.newProxyInstance(類加載器, 被代理類實現的接口的集合, invocationhandler 的實現類)來創建代理類對象
?
//定義歌手的接口
public interface Singer{
void sing();
}
public class ?Jay implements ?Singer{
@override
public void sing(){
syso ("唱歌!");
}
}
//定義實現接口的類
public class ProxyJay implements InvocationHandler{
private Object o;
public??ProxyJay(){
}
public Object proxy(Object o){
this.o=o;
return??Proxy.newProxyInstance(to.getClass().getClassLoader(), ?o.getClass().getInterfaces(),this);//返回代理類對象
}
@override
public Object invoke(Object proxy , Method method, Object args[]) ?throws Throwables{
method.invoke(o);
return o;
}
}
public class Text{
main(String[] args){
Singer s=(Singer)new ProxyJay(new Jay());
s.sing();
}
}
?