Prooxy.newProxyInstance 第一个参数
Prooxy.newProxyInstance 第一个参数用实例化类的加载器和用接口类的加载器的区别
Prooxy.newProxyInstance 第一个参数用实例化类的加载器和用接口类的加载器的区别
2016-12-26
我们首先要明白静态代理的是怎么一会事,
1:首先要实现InvocationHandler处理器的接口,这个接口里面只有一个方法invoke,弄明白这个方法里面的各个参数的含义,object(Object),被代理的对象,method(Method),被代理的对象方法,args(Object[])是方法里面的参数;
通过实现的实现InvocationHandler接口的类,进行有参构造获取参数,
public class TimeHandler implements InvocationHandler{
//有参构造获取参数,写了有参构造,默认的无参构造就会不存在,如果想存在,可以在写一个无参构造
public TimeHandler(Object target){
super();//可以不写,因为有默认的
this.target=target;
}
private Object target;
}
//实现接口的方法
public Object invoke(Object object,Method method,Object[] args){
//在次添加额外的数据
syso(“马上开始”);//简写
//mthod的类型是Method,通过代理的对象获,获取被代理的方法,car对象中的方法没有参数,就可以不添加参数
method.invoke(target);//获取到被代理的方法,如果是被代理的对象是car的话,这个方法就是car实现那个方法
、
syso("结束");
};
举报