java动态代理详解
于是杀猪注水的代码写进来就变成这样了:这个里调用农民伯伯的买肉方法有点不符常规,这里是反射机制调用法,意思是这样的,以farmer对象为接受者来调用buyMeat方法,跟直接调用farmer的方法是一样的,你可能会问那为什么不直接调用呢,你可能没注意,invoke的第一个参数类型是Object,所以你可以向任何对象发布调用命令,如果你有很多farmer对象,甚至不是farmer对象,只要某接口的实例就可以,就可以当成参数传进来,然后对其进行方法调用。第三个参数InvocationHandler更好理解了,就是只要代理类中的任何方法被调用,就会通知这个InvocationHandler。下面写出完整代码:这里You类里生成一个代理类,在代理类的buyMeat被调用时,代码就跟之前的静态代理一样的了。