我有一个包含这一行的配置文件:
login.mode=PASSWORD
和一个枚举
public enum LoginMode {
PASSWORD, NOT_PASSWORD, OTHER }
和一个 Spring bean
<bean id="environment" class="a.b.c.Environment" init-method="init">
<property name="loginMode" value="${login.mode}"/>
</bean>
当然还有bean类
public class Environment {
private LoginMode loginMode;
public LoginMode getLoginMode() {
return loginMode;
}
public void setLoginMode(LoginMode loginMode) {
this.loginMode = loginMode;
}
}
如何将配置文件的属性(String)转换成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?
最佳答案
Spring 自动将输入字符串转换为所需枚举的相应 valueOf。
关于java - 将配置属性转换为枚举值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19678664/