2013-10-23 30 views
1

我是GWT新手。在我見過的代碼示例中,演示者定義了一個包含asWidget方法的界面Display。 例如,在GWT中,約定爲什麼要使用asWidget()來代替投射?

public interface Display { 
    HasClickHandlers getSaveButton(); 
    HasValue<String> getName(); 
    ... 
    Widget asWidget(); 
} 

然後演示者實現go()方法:

public void go(final HasWidgets container){ 
    ... 
    container.add(display.asWidget()); 
} 

出了什麼問題只是投放顯示到窗口小部件,例如

container.add((Widget) display); 

謝謝!

回答

3

asWidget()位於GWT中以便於測試。

使用它,您可以在測試中使用顯示和其他視圖組件的存根實現,而無需擴展抽象類Widget。

所以在你的情況下,你的顯示器可以是任何類,不一定是一個Widget,唯一的條件是它返回一個Widget。

Here您可以閱讀更完整的說明。

+0

聰明。感謝您的鏈接。 – Alicia

相關問題