在我的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

08-04 19:25