为了减少一些重复的代码/类,我尝试仅为1个所有者类使用多个XML模板。 official GWT guide指出了如何做到这一点。
public class FooPickerDisplay extends Composite{
@UiTemplate("RedFooPicker.ui.xml")
interface RedBinder extends UiBinder<Widget, FooPickerDisplay> {}
private static RedBinder redBinder = GWT.create(RedBinder.class);
@UiTemplate("BlueFooPicker.ui.xml")
interface BlueBinder extends UiBinder<Widget, FooPickerDisplay> {}
private static BlueBinder blueBinder = GWT.create(BlueBinder.class);
@UiField Button button1;
}
'@UiField'会导致编译错误,它说“字段button1在模板文件BlueFooPicker.ui.xml中没有相应的字段”
我的RedFooPicker.ui.xml和BlueFooPicker.ui.xml的内容完全不同,因此RedFooPicker.ui.xml中有UiField =“button1”,但BlueFooPicker.ui.xml中没有button1。
所以我的问题是,如果有任何方法我可以为同一所有者类使用具有完全不同内容的多个XML模板而不会导致此类错误?
答案 0 :(得分:3)
不,每个UiBinder
必须对不同的所有者类行事。但是,您可以轻松地为其中一个UiBinder
创建内部类。文档中的示例是关于使用一个或另一个,而不是同时使用两者。