enum для преобразования объекта класса - PullRequest
0 голосов
/ 11 января 2012

Я получаю значение перечисления в качестве входных данных, каждое значение перечисления соответствует классу.Как определить конфигурацию пружины, учитывая, что значение перечисления должно быть преобразовано в объект класса

public enum R {
eR1,
eR2,
eR3;
}

//simple interface
interface R {
    dosomething();
}

//R1 class
class R1 implements R {
    dosomething() {
    //implmentation for R1
    }
}

//R2 class
class R2 implements R {
    dosomething() {
        //implementation for R2
    }
}

У меня есть API, скажем,

getR(R er1) {
   //How do I define spring configuration to get class object given enum value??
}

I want to avoid if conditions in API, something like this
getR(R er) {
    if(er.equals(R.eR1)) {
        //do this
    } else if(er.equals(R.eR2)) {
       //do this
    }
}
I want to spring to inject right class based on input parameter so that I can avoid if statement.

скажем, для трех полей перечисления, я хочу избежать трех идентификаторов ввесна.

Can I define somethign like this
<bean id="r" class="com.myProject.R1">
    <property name="er1" value="eR1"/>
</bean>
<bean id="r" class="com.myProject.R2">
    <property name="er2" value="eR2"/>
</bean>
//similary for R3 as well

1 Ответ

1 голос
/ 11 января 2012

В вашей конфигурации пружины просто используйте значение enum

образец, если вы хотите ввести eR2 внутрь R2,

 <bean id="r2" class="com.myProject.R2">
     <property name="er2" value="eR2"/>
 </bean>

см. Образец здесь . Вам не нужно использовать полное имя. См. Обсуждение в Как назначить свойству бина значение Enum в конфигурационном файле Spring? .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...