我的枚举类似于以下
public enum MyEnum {
A,
B;
}
然后我有一个带有自定义组件的UiBinder文件,该组件有一个setter和getter,期望上面的枚举。 (我已经删除了
的额外代码<ui:UiBinder ....>
<g:HTMLPanel>
....
<myNamespace:myComponent myAttribute="" />
....
</g:HTMLPanel>
</ui:UiBinder>
我可以引用我的枚举并以任何方式将该值放入myAttribute吗?我想要完成的是这样的事情
<ui:UiBinder ....>
<ui:with field="myEnumField" type="com.example.MyEnum" />
<g:HTMLPanel>
....
<myNamespace:myComponent myAttribute="{myEnumField.A}" />
....
</g:HTMLPanel>
</ui:UiBinder>
然而,似乎我不能用ui执行此操作:with。我能以任何方式这样做吗?
答案 0 :(得分:8)
在搜索了一下后,我意识到你实际上可以做到以下几点:
<ui:import field="com.example.MyEnum.*" />
<g:HTMLPanel>
...
<myNamespace:myComponent myAttribute="{A}" />
...
</g:HTMLPanel>
答案 1 :(得分:1)
有可能。您应该能够直接将枚举传递给属性,如
<ui:UiBinder ....>
<g:HTMLPanel>
....
<myNamespace:myComponent myAttribute="A" />
....
</g:HTMLPanel>
</ui:UiBinder>
MyComponent小部件应该有一个接受MyEnum类型的uiConstructor。
@UiConstructor
public MyComponent(MyEnum myAttribute){
}