java - Spring enums in a map -
i have 2 enumerateds:
public enum 1 implements representable{ 1 } public enum 2 implements representable{ 2 }
now, need declare following spring-bean:
<bean id="listgeneratorcontainer" class="pack.age.container> <property name="generators"> <map key-type="pack.age.representable"> <!-- how specuify type? --> <entry key="one" value="1"/> <entry key="two" value="2"/> </map> </property> </bean>
where
package pack.age; public class container{ private map<representable, interger> generators //get, set, staff }
is possible tell spring inject enums of different types? in case of single enum that's clear.
it's not working now:
java.lang.illegalargumentexception: cannot convert value of type [java.lang.string] required type [pack.age.representable]: no matching editors or conversion strategy found @ org.springframework.beans.typeconverterdelegate.convertifnecessary(typeconverterdelegate.java:219) @ org.springframework.beans.typeconverterdelegate.convertifnecessary(typeconverterdelegate.java:107) @ org.springframework.beans.beanwrapperimpl.convertifnecessary(beanwrapperimpl.java:362) ... 34 more
i think looking way embed enum keys in spring map definition. here example post same.
<util:map id="mymap"> <entry key="#{t(com.acme.myenum).elem1}" value="value1" /> <entry key="#{t(com.acme.myenum).elem2}" value="value2" /> </util:map>
make sure reference above. in case this.
<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>
hope helps.
Comments
Post a Comment