java - 在 GWT 中,为什么约定使用 asWidget() 而不是强制转换?

标签 java gwt

我是 GWT 的新手。在我看到的代码示例中,演示者定义了一个包含 asWidget 方法的接口(interface) Display。 例如,

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

然后presenter实现go()方法:

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

仅将显示转换到 Widget 有什么问题,例如

container.add((Widget) display);

谢谢!

最佳答案

asWidget() 在 GWT 中是为了方便测试。

有了它,您可以在测试中使用显示和其他 View 组件的 stub 实现,而无需扩展抽象类 Widget。

所以在你的情况下,你的显示可以是任何类,不一定是Widget,唯一的条件是它返回一个Widget。

Here你可以阅读更完整的解释。

关于java - 在 GWT 中,为什么约定使用 asWidget() 而不是强制转换?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19548993/

相关文章:

c# - 从 ASP.NET MVC Web 应用程序访问 android Activity

java - 如何在不同的gradle任务之间共享参数

java - GWT 中的并发节省

java - 将 Java 交叉编译为 JavaScript

java - 如何在 Eclipse 项目中使用外部类文件

java - Model.listSubjectsWithProperty(Property p, String o) 不列出具有相同字符串值的类型文字的资源

java - GWT:从 Java 调用 javascript 函数

java - GWT LayoutPanel 中的中间居中对齐(Alignment.MIDDLE_CENTER 等效)

java - GXT:突出显示 StoreFilterField 的搜索短语

Java服务器、客户端程序