2011-12-05 70 views
1

我有一個自定義的延遲綁定(重新綁定實現),實例化對象。我想在由GIN實現的GWT.create()返回的實例中有一些依賴項(@Inject註釋的setter方法)。這可能嗎?注入與杜松子酒創建實例創建GWT.create

因此,考慮到這樣的代碼:如果

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

Foo的最終實現有:

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

我怎麼用吧GIN注入返回foo的實例會自動?

回答

2

您的Ginjector可以添加方法以注入以某種其他方式創建的對象。這些必須採取一個參數,並應指定可能的最具體的類型。例如,如果MyViewImpl延伸基本視角,這兩種類型有依賴注入,但你在ginjector聲明

void injectBaseView(BaseView view); 

,只有基本視點聲明的領域/ setter方法將被處理。

編輯:另外,如果沒有聲明綁定,GWT.create將用於創建一個實例,所以你可以有你的蛋糕,吃它。就我所能記得的一個例外是,當你想GWT.create一個類型,但返回另一個類型(例如見RPC接口)。