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使用第二种模式?
答案 0 :(得分:2)
我对第一个版本的Eclipse偏好感到抱怨 - 复合材料是一个额外的部分,在大多数情况下真的不是那么有用。相反,只需使UserDashboard
实现IsWidget
,并使asWidget()
方法返回您的uibinder xml创建的小部件。
答案 1 :(得分:0)
IDEA不会添加'extends Composite',因为并不总是需要它。但是,您可以轻松更改此行为:转到文件|设置|文件模板,打开'JavaEE'选项卡,选择'Google Web Toolkit' - &gt; GwtUiBinder.java模板并将'extends Composite'添加到模板文本中。另外,不要忘记添加必需的'import'语句。