Java 枚举到类对象转换
我得到枚举值作为输入,每个枚举值对应一个类。 给定枚举值应转换为类对象,如何定义spring配置Java 枚举到类对象转换,java,spring,enums,Java,Spring,Enums,我得到枚举值作为输入,每个枚举值对应一个类。 给定枚举值应转换为类对象,如何定义spring配置 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 i
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
}
}
我不得不说
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.
比如说,对于三个枚举字段,我希望避免在春季使用三个id
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
我可以定义这样的东西吗
//R3也是如此
在spring配置中,只需使用枚举值即可
如果要在R2内注入eR2,请取样
<bean id="r2" class="com.myProject.R2">
<property name="er2" value="eR2"/>
</bean>
看一个例子。您不需要使用完全限定名。参见。上的讨论。我已更新了问题,请检查,如果有人对此有建议,我如何避免不必要的陈述?