Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 枚举到类对象转换_Java_Spring_Enums - Fatal编程技术网

Java 枚举到类对象转换

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

我得到枚举值作为输入,每个枚举值对应一个类。 给定枚举值应转换为类对象,如何定义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 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>


看一个例子。您不需要使用完全限定名。参见。

上的讨论。我已更新了问题,请检查,如果有人对此有建议,我如何避免不必要的陈述?