2011-06-14 39 views
0

對於我的一些莫名其妙的原因,杜松子酒不按我的意圖工作。讓我用一點代碼解釋。Gwt項目中的杜松子酒怪異行爲

讓說我有一個FORMA

@Singleton 
public class formA extends Composite 

    private final MyGinjector ginjector; 

    @Inject 
    public formA(MyGinjector ginjector) 
    { 
     this.ginjector = ginjector; 
     this.add(ginjector.getFormB()); 
     this.add(ginjector.getFormC()); 
    } 

這裏和formB和formC(我們假設formB和formC也有類似的代碼)

@Singleton 
public class formB extends Composite 
{ 
@Inject 
public formB(MyGinjector ginjector) 
{ 
    this.ginjector = ginjector; 
.............. 
} 
} 

而且我一直面臨的問題是,在一些當我注入formA(ginjector.getFormA()返回formA的一個實例,但缺少childWidgets的意思是沒有引用formB和formC

可能是什麼問題?所有形式是單身...可能我不應該注射這樣的注射器?

感謝

回答

0

我相信杜松子酒不支持注射進樣器:gin groups discussion

是否有任何理由你嘗試注射注射器,而不是直接注入依賴關係?

你應該只依賴注入直接:

@Inject 
    public formA(FormB formB, FormC formC){ 
+0

如果我直接注入同樣的情況。這個問題很奇怪,因爲實際上我添加formB和formC作爲FormA中的一個窗口小部件,這是一個Compose,因此在2或3次調用FormA的實例不再保留窗口小部件formB和formC .. ..圖像很簡單.. formA保留兩個面板(formB和formC),當我得到formA的實例,我期望看到這些面板,但他們缺少.. – brakebg 2011-06-14 14:04:56