在我的Java程序中有Enum类。
public enum DemoType{
DAILY, WEEKLY, MONTHLY;
}
在我的jsp中,我从用户(如选择框)中获取值,而这个Jsp则称为
DemoJspBean
..<form:select path="repeatWeektype">
<form:option value="DAILY" />
<form:option value="WEEKLY" />
<form:option value="MONTHLY" />
</form:select>
我的HibernateVO类(class)是..
public class DemoVO{
@Column(name = "REPEAT_TYPE")
@Enumerated(EnumType.STRING)
private RepeatType repeatType;
}
现在我想使用Hibernate Bean(setter和getter)将此值插入DB中
DemoVO demo = new DemoVO();
demo.setRepeatType(demoJspBean.getRepeatWeektype());
但这是显示错误。
那么如何将我的String值转换为枚举类类型?
最佳答案
在valueOf
类上使用Enum
方法。
DemoType demoType = DemoType.valueOf("DAILY")
如果提供的字符串参数无效,它将抛出
IllegalArgumentException
。用你的例子DemoType demoType = DemoType.valueOf("HOURLY");
上面的行将抛出
IllegalArgumentException
,因为HOURLY
不属于DemoType