在GWT中使用UiBinder将Ui绑定到java接口

时间:2015-03-13 16:22:51

标签: java gwt uibinder

假设我有一个接口A,它由B和C类实现。

public class B implements A extends Composite {}
public class C implements A extends Composite {}

我创建了另一个D类,它在GWT中使用UiBinder绑定到Ui。

public class D {
  public A widget;
  ...
  // binds to D.ui.xml
  ...
}

D.ui.xml

 ...
 <A ui:field='widget'>
 ...

B和C是绑定到自己的ui.xml文件的小部件,并在不同条件下注入到D类中。

当我尝试在D类中将UI绑定到接口A(取决于绑定表示法的B或C)时,我得到 &#34;只期待小部件&#34; 考虑到A没有实现Composite或Widget类的事实,这是可以理解的错误。

有没有办法完成此行为,我不想为每个行为创建不同版本的D类?

1 个答案:

答案 0 :(得分:2)

A可以延长IsWidget。另外,显然,请确保您的widget字段为@UiField(provided=true)