Injecter de la valeur de l'enum dans une propriété à l'aide de printemps

J'ai un enum similaire à ci-dessous

public enum MyEnum {
ABC("some string"), 
DEF("some string"), 
GHI("another string");

String value;

private MyEnum(String value) {
    this.value = value;
}

public String value() {
    return this.value;
}}

Et je voudrais faire un util:carte à l'aide de la valeur de l'énumération que la clé enum lui-même. La carte devrait ressembler à ceci:

"some string" -> "mapped output 1"
"another string" -> "mapped output 2"

Je sais que je peux utiliser util:constant pour obtenir les enum, mais j'ai besoin de la valeur de l'enum représente.

Donc mon fichier de config à la minute ressemble à ceci:

<util:constant id="firstKey" static-field="package.MyEnum.ABC"/>
<util:constant id="secondKey" static-field="package.MyEnum.GHI" />


<util:map id="myMap">
    <entry key-ref="firstKey" value="mapped output 1" />
    <entry key-ref="secondKey" value="mapped output 2" /></util:map>

Est-il un moyen que je peux obtenir .valeur() ou même d'obtenir l'accès à la propriété de la valeur de l'utiliser comme clé?

J'ai essayé de déclarer le type de clé à chaîne, dans l'espoir de printemps fonctionnerait, mais il semble avoir tout simplement ignoré cette.

À l'aide de printemps 2.5.1 et je ne peux pas modifier l'enum

InformationsquelleAutor James | 2012-12-28