Java中的自动委派
我想为将在运行时生成的对象添加一些功能.但是,此对象的界面非常大(并且不受我的控制).我想将对象包装在我自己的类中,它添加了我想要的功能并将标准接口功能委托给原始对象 – 有没有办法在
Java中执行此操作而不为每个创建一行复制粘贴委托方法界面中的方法?
我想避免的: class MyFoo implements Foo { Foo wrapped; void myMethod() { ... } void interfaceMethod1() wrapped.interfaceMethod1(); int interfaceMethod2() wrapped.interfaceMethod2(); // etc etc ... } 我更喜欢什么: class MyFoo implements Foo { Foo wrapped; void myMethod() { ... } // automatically delegate undefined methods to wrapped object } 解决方法
听起来你需要一个
dynamic proxy并且仅截取你想要覆盖的方法.
(我的重点) 通过实现InvocationHandler,您只需创建一个接收该对象上每次调用的方法(实际上您已经在上面描述过) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |