@动态代理
jdk动态代理
创建代理
public class DynamicProxyNew<T> implements InvocationHandler {
private T target;
public T getProxy(T object){
this.target = object;
return (T) Proxy.newProxyInstance(object.getClass().getClassLoader(), object.getClass().getInterfaces(), this);
}
@Override
public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
Object result = null;
System.out.println("start");
result = method.invoke(target, args);
System.out.println("end");
return result;
}
}
使用代理
Video video = new DynamicProxyNew<Video>().getProxy(new Mp3());
video.play();