1

既存のインターフェースに非常によく適合するメソッドシグネチャを持つサードパーティのBeanがいくつかありますが、インターフェースを実装していません。

今、私はこのようなことをしたいのですが、うまくいきません。いくつかの回避策はありますか?

 someBean.setSomeInterface(
         new Interface() extends SomeBeanThatMatchesAlotOfMethodsOfTheInterface {
     });
4

2 に答える 2

2

これにはデコレータパターンを 使用できます

インターフェイスを実装するクラスを定義し、すべてのメソッド呼び出しで実装に委任しsomeBeanます。

于 2012-03-23T16:34:26.943 に答える
1

私はあなたができることは(あなたが上でしたように)彼らのクラスを拡張してから実装を言うことだけだと思います。

例えば。

public class MyImplementingClass extends SomeBeanThatMatchesAlotOfMethodsOfTheInterface implements MyInterface {

....
}

もちろん、彼らのコードをあなたのインターフェースに基づいていることによって、将来それが壊れる可能性があります。ただそれに注意してください。

于 2012-03-23T16:19:18.947 に答える