为什么IntelliJ IDEA在使用GWT UiBinder时不喜欢扩展Composite?

时间:2012-03-19 01:05:00

标签: gwt intellij-idea

UiBinder documentation中的大多数示例都使用base Composite类,如下所示:

public class UserDashboard extends Composite { 
    interface MyUiBinder extends UiBinder<Widget, UserDashboard> {}
    private static MyUiBinder uiBinder = GWT.create(MyUiBinder.class);
    public UserDashboard() {
        initWidget(uiBinder.createAndBindUi(this));
    }
}

同时IntelliJ IDEA始终生成:

public class UserDashboard { 
    interface MyUiBinder extends UiBinder<Widget, UserDashboard> {}
    private static MyUiBinder uiBinder = GWT.create(MyUiBinder.class);
    public UserDashboard() {
        Widget widget = uiBinder.createAndBindUi(this);
    }
}

所以问题是为什么IntelliJ IDEA使用第二种模式?

2 个答案:

答案 0 :(得分:2)

我对第一个版本的Eclipse偏好感到抱怨 - 复合材料是一个额外的部分,在大多数情况下真的不是那么有用。相反,只需使UserDashboard实现IsWidget,并使asWidget()方法返回您的uibinder xml创建的小部件。

答案 1 :(得分:0)

IDEA不会添加'extends Composite',因为并不总是需要它。但是,您可以轻松更改此行为:转到文件|设置|文件模板,打开'JavaEE'选项卡,选择'Google Web Toolkit' - &gt; GwtUiBinder.java模板并将'extends Composite'添加到模板文本中。另外,不要忘记添加必需的'import'语句。