私はしたい生成されたオブジェクトを持っています:
- コンストラクターに注入したり、 を呼び出すすべてのメソッドを書き換えたりすることなく、 の既存の機能を保持します
injectedObject.sameMethod()
。 - 生成されたオブジェクトを変更せずに、その生成されたオブジェクトに追加の機能を追加します。
に機能を追加します。
例えば:
public class GeneratedObject {
public String getThis() { ... }
public String getThat() { ... }
}
public interface ObjectWrapper {
String doThisWithThat();
}
public class ObjectWrapperImpl extends GeneratedObject implements ObjectWrapper {
String doThisWithThat() { ... }
}
ただし、ダウンキャストは許可されていません。オブジェクトをラップするためだけに大量の冗長コードを書き直さずに適切な実装を行うにはどうすればよいでしょうか?