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>