在 GWT 中使用 UiBinder 将 Ui 绑定到 java 接口
Binding Ui to java interface using UiBinder in GWT
假设我有一个由 classes B 和 C 实现的接口 A。
public class B implements A extends Composite {}
public class C implements A extends Composite {}
我创建了另一个 class 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 文件的小部件,并在不同条件下注入到 class D。
当我尝试将 UI 绑定到 class D 中的接口 A(根据绑定符号为 B 或 C)时,我得到
"Expecting only widgets"
考虑到 A 没有实现 Composite 或 Widget class.
,这个错误是可以理解的
有没有办法完成这个行为,我不想为每个行为创建不同版本的 class D?
A
可以扩展 IsWidget
。另外,显然,请确保您的 widget
字段是 @UiField(provided=true)
假设我有一个由 classes B 和 C 实现的接口 A。
public class B implements A extends Composite {}
public class C implements A extends Composite {}
我创建了另一个 class 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 文件的小部件,并在不同条件下注入到 class D。
当我尝试将 UI 绑定到 class D 中的接口 A(根据绑定符号为 B 或 C)时,我得到 "Expecting only widgets" 考虑到 A 没有实现 Composite 或 Widget class.
,这个错误是可以理解的有没有办法完成这个行为,我不想为每个行为创建不同版本的 class D?
A
可以扩展 IsWidget
。另外,显然,请确保您的 widget
字段是 @UiField(provided=true)