标签:io os ar java sp on ad new bs
public interface Subject{
public void dosomething(String str);
}
public class RealSubject implements Subject {
@Override
public void dosomething(String str) {
System.out.println("do something....."+str);
}
}
public class MyInvocationHandler implements InvocationHandler {
private Object target=null;
public MyInvocationHandler(Object _target){
this.target=_target;
}
@Override
public Object invoke(Object target, Method method, Object[] args)
throws Throwable {
return method.invoke(this.target, args);
}
}
public class DynamicProxy<T> {
public static <T> T newProxyInstance(ClassLoader loader,Class<?>[] interfaces,InvocationHandler h){
return (T) Proxy.newProxyInstance(loader,interfaces, h);
}
}
public class Client {
public static void main(String[] args) {
Subject subject = new RealSubject();
Subject proxy =SubjectDynamicProxy.newProxyInstance(subject);// DynamicProxy.newProxyInstance(sub.getClass().getClassLoader(), sub.getClass().getInterfaces(), h);
proxy.dosomeshting("Finish");
}
}
被代理的对象需要实现接口
标签:io os ar java sp on ad new bs
原文地址:http://my.oschina.net/u/586094/blog/325416