Java Spring在映射中枚举
我列举了两个例子:Java Spring在映射中枚举,java,spring,enums,Java,Spring,Enums,我列举了两个例子: public enum One implements Representable{ ONE } public enum Two implements Representable{ TWO } 现在,我需要声明以下Springbean: <bean id="listGeneratorContainer" class="pack.age.Container> <property name="generators"> &
public enum One implements Representable{
ONE
}
public enum Two implements Representable{
TWO
}
现在,我需要声明以下Springbean:
<bean id="listGeneratorContainer" class="pack.age.Container>
<property name="generators">
<map key-type="pack.age.Representable"> <!-- How to specuify the Type? -->
<entry key="ONE" value="1"/>
<entry key="TWO" value="2"/>
</map>
</property>
</bean>
我认为您正在寻找将Enum作为键嵌入到spring映射定义中的方法。 这是一个同样的例子
<util:map id="myMap">
<entry key="#{T(com.acme.MyEnum).ELEM1}" value="value1" />
<entry key="#{T(com.acme.MyEnum).ELEM2}" value="value2" />
</util:map>
确保你像上面那样引用它。
所以在你的情况下是这样的
<bean id="listGeneratorContainer" class="pack.age.Container>
<property name="generators">
<map key-type="pack.age.Representable">
<entry key="#{T(pack.age.ONE)ONE}" value="1"/>
<entry key="#{T(pack.age.TWO)TWO}" value="2"/>
</map>
</property>
我个人认为,如果两个枚举使用同一个接口,请将它们合并为一个。顺便说一句,在你发布答案之前,我已经找到了一种方法。我使用了自定义属性编辑器。不过,还是要谢谢你
<util:map id="myMap">
<entry key="#{T(com.acme.MyEnum).ELEM1}" value="value1" />
<entry key="#{T(com.acme.MyEnum).ELEM2}" value="value2" />
</util:map>
<bean id="listGeneratorContainer" class="pack.age.Container>
<property name="generators">
<map key-type="pack.age.Representable">
<entry key="#{T(pack.age.ONE)ONE}" value="1"/>
<entry key="#{T(pack.age.TWO)TWO}" value="2"/>
</map>
</property>