假设我有一个接口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类?
答案 0 :(得分:2)
A
可以延长IsWidget
。另外,显然,请确保您的widget
字段为@UiField(provided=true)