我想为将在运行时生成的对象添加一些功能。但是,这个对象的接口非常大(并且不在我的控制之下)。我想将对象包装在我自己的类中,它添加了我想要的功能并将标准接口功能委托给原始对象 - 有没有办法在 Java 中做到这一点,而无需为每个对象创建 1 行复制粘贴委托方法接口中的方法?
我想避免的:
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
}