我有包含該線路的配置文件:轉換配置屬性的枚舉值
login.mode=PASSWORD
和枚舉
public enum LoginMode {
PASSWORD, NOT_PASSWORD, OTHER }
和彈簧豆
<bean id="environment" class="a.b.c.Environment" init-method="init">
<property name="loginMode" value="${login.mode}"/>
</bean>
,當然豆類
public class Environment {
private LoginMode loginMode;
public LoginMode getLoginMode() {
return loginMode;
}
public void setLoginMode(LoginMode loginMode) {
this.loginMode = loginMode;
}
}
如何將配置文件(這是一個字符串)的屬性轉換爲相應的LoginMode的枚舉值?
編輯:我知道如何讓一個字符串輸入的枚舉值,但問題是另外一個: 如果我試試這個:
public class Environment {
private LoginMode loginMode;
public LoginMode getLoginMode() {
return loginMode;
}
public void setLoginMode(String loginMode) {
this.loginMode = LoginMode.valueOf(loginMode);
}
}
彈簧抱怨getter和setter不具有相同輸入和輸出類型。
Bean property 'loginMode' is not writable or has an invalid setter method. Does the parameter type of the setter match the return type of the getter?
可能重複的[Java - 將字符串轉換爲枚舉](http://stackoverflow.com/questions/604424/java-convert-string-to-enum) –
它不是這個問題的重複,請參閱編輯。 – thg
所以也許那個http://stackoverflow.com/questions/13030974/spring-how-do-i-inject-enum-in-spring-configuration會有幫助嗎? –