Java 将配置属性转换为枚举值
我有一个配置文件,其中包含以下行:Java 将配置属性转换为枚举值,java,spring,enums,Java,Spring,Enums,我有一个配置文件,其中包含以下行: 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}"/> </be
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>
如何将配置文件的属性(字符串)转换为LoginMode的相应枚举值
编辑:我知道如何获取字符串输入的枚举值,但问题是另一个:
如果我尝试这样做:
public class Environment {
private LoginMode loginMode;
public LoginMode getLoginMode() {
return loginMode;
}
public void setLoginMode(String loginMode) {
this.loginMode = LoginMode.valueOf(loginMode);
}
}
spring抱怨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?
你可以这样做
LoginMode.valueOf("someString");
编辑:
尝试使用转换器
编辑2:
还请检查以下内容:
Spring会自动将输入字符串转换为所需枚举的相应值。可能的重复项不是该问题的重复项,请参见编辑。因此这可能会有所帮助?感谢您的建议,但答案非常简单。。。我会把它贴在哪里转换字符串?在bean配置中还是在环境类中?
LoginMode.valueOf("someString");
LoginMode.valueOf(valueOfProperty);