中易网

Java 动态代理问题:HandlerXXX,HandlerYYY分别实现了InvocationHandler,请问如何同时加入,

答案:1  悬赏:80  
解决时间 2021-02-08 10:29
Java 动态代理问题:HandlerXXX,HandlerYYY分别实现了InvocationHandler,请问如何同时加入,
最佳答案
首先简要说明一下动态代理的原理:
我们调用Proxy.newProxyInstance所生成的代理对象的方法,其内部会调用InvocationHandler 中的invoke方法,而该方法会通过反射调用真实对象的指定方法。
对于你写的//InvocationHandler ihy=new AnimalHandlerYYY(ihx);来说,ihx本身并未实现Animal接口,所以调用它的shout方法会出错。
你可以尝试写成下面这样子,我猜能实现你想要的结果:
Animal animal = new Dog();
InvocationHandler ihx = new AnimalHandlerXXX(animal);
Animal proxy = (Animal) Proxy.newProxyInstance(animal.getClass()
.getClassLoader(), animal.getClass().getInterfaces(), ihx);
InvocationHandler ihy = new AnimalHandlerYYY(proxy);
proxy = (Animal) Proxy.newProxyInstance(animal.getClass()
.getClassLoader(), animal.getClass().getInterfaces(), ihy);
InvocationHandler ihz = new AnimalHandlerZZZ(proxy);
proxy = (Animal) Proxy.newProxyInstance(animal.getClass()
.getClassLoader(), animal.getClass().getInterfaces(), ihz);
proxy.shout();
估计说的不太明白,看看例子也许会明白些
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
平安银行两张信用卡账单绑定在一起的吗?
10x-3=6x+17怎么解(用方程)
穿越火线战队系统,怎样找回战队密码,我队长
铁三角和三角恋有关系吗
我想在景区里面租几个门面做生意就是不知道做
qcy运动蓝牙耳机耳挂怎样使用
江南美发设计在哪里啊,我有事要去这个地方
中国第一部电影是以什么形式出现
什么叫四轮换位
昆明哪个菜市场卖螺蛳?
刘集村在什么地方啊,我要过去处理事情
我巳是五十七岁的女人,还能昄依佛门吗
如何将信息发布到网上
怎样才能看水浒传之英雄好色
ENIAC怎么读??
推荐资讯
老姨家的女儿结婚送东西好还是给钱啊
tp-link路由器怎么小米不可以连?
以竭泽而渔材料写一篇作文。
瑙木干怎么去啊,有知道地址的么
象印保温杯用热水消毒不能盖上了咋办?
古代文言文中的”走.奔.趋.行”的速度快慢
丁家堡原型
你是喜欢叶还是喜欢花?
松滋市金松化工有限公司地址有知道的么?有点
翔瑞药行我想知道这个在什么地方
化工DCS操作工工资多少?哪地方工资最高?我
手机配件去哪买好
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?