2011-12-05 4 views
1

オブジェクトをインスタンス化するカスタム遅延バインダ(リバインド実装)があります。私はGINによって満たされたGWT.create()によって返されたインスタンス内にいくつかの依存関係(@Inject annotated setterメソッド)を持っていたいと思います。これは可能ですか?だから、Ginでインスタンス化するGWT.createで作成する

、のようなコードを与えられた:FOOの最終的な実装がある場合

Foo foo = GWT.create(Foo.class); 

を:

@Inject 
public void setBar(Bar bar) { 
    ... 
} 

は、どのように私はバーがGINによって自動的に返さfooのインスタンスに注入のですか?

答えて

2

Ginjectorには、他の方法で作成したオブジェクトを挿入するためのメソッドが追加できます。これらは1つの引数を取らなければならず、可能な最も具体的な型を指定する必要があります。 MyViewImplがBaseViewを拡張し、両方のタイプを注入するための依存関係を持っていますが、あなたはginjectorに

void injectBaseView(BaseView view); 

を宣言した場合、BaseViewに宣言したフィールドのみ/セッターは対処されます。

EDIT:バインディングが宣言されていない場合は、GWT.createを使用してインスタンスを作成するので、ケーキを食べて食べることができます。私が思い出す限り、あるタイプをGWT.createしたいが、別のタイプを返すことが1つの例外です(RPCインターフェイスを参照してください)。