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

为什么IntelliJ IDEA在使用GWT UiBinder时不喜欢扩展复合?,gwt,intellij-idea,Gwt,Intellij Idea,大多数使用基本复合类的示例如下所示: public class UserDashboard extends Composite { interface MyUiBinder extends UiBinder<Widget, UserDashboard> {} private static MyUiBinder uiBinder = GWT.create(MyUiBinder.class); public UserDashboard() { i

大多数使用基本复合类的示例如下所示:

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));
    }
}
公共类UserDashboard扩展了复合{
接口MyUiBinder扩展了UiBinder{}
私有静态MyUiBinder=GWT.create(MyUiBinder.class);
公共用户仪表板(){
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);
    }
}
公共类UserDashboard{
接口MyUiBinder扩展了UiBinder{}
私有静态MyUiBinder=GWT.create(MyUiBinder.class);
公共用户仪表板(){
Widget Widget=uiBinder.createAndBindUi(这个);
}
}

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

我抱怨Eclipse对第一个版本的偏好——制作合成是一个额外的部分,在大多数情况下并没有那么大的帮助。相反,只需使
UserDashboard
实现
IsWidget
,并使
asWidget()
方法返回uibinder xml创建的小部件。

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