2012-01-11 131 views
0

我將枚舉值作爲輸入,每個枚舉值對應一個類。 如何定義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 
    } 
} 

我有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. 

說了三個枚舉領域我想避免在春季三個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 

回答

1

在Spring配置只是用枚舉值

樣本,如果你想注入ER2裏面R2,

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

看到一個樣本here。您不需要使用完全限定的名稱。請參閱How assign bean's property an Enum value in Spring config file?的討論。

+0

我已更新問題請檢查,我如何避免不必要的陳述 – user903887 2012-01-11 19:46:07

+0

任何人都有這方面的建議? – user903887 2012-01-13 09:07:36