/**
* 代理对象类
*/
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
public class Dynamic implements InvocationHandler {
private Object user;
public Dynamic(Object user){
this.user=user;
}
@Override
public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
method.invoke(user,args);
return null;
}
}
public class User implements UserDao{
@Override
public void Making() {
System.out.println("拍电影");
}
}
import java.lang.reflect.Proxy;
public class Test {
public static void main(String[] args) {
//获取目标类对象
UserDao user = new User();
//获取代理对象
Dynamic dynamic = new Dynamic(user);
//创建动态代理对象
UserDao proxy =(UserDao) Proxy.newProxyInstance(
user.getClass().getClassLoader(),//dynamic.getClass().getClassLoader();也是可以的
user.getClass().getInterfaces(),
dynamic);
proxy.Making();//调用目标的事件;
}
}