繁体   English   中英

将字符串转换为枚举在Java中给出错误?

[英]Converting String to Enum give Error in java?

所有的String to Enum转换的示例仅采用一个字符串,但是在我的示例字符串中,像这样...

String allDays="MONDAY,SUNDAY,FRIDAY";

和我的Enum Class这样。

public enum WeekdayType {

    MONDAY(Calendar.MONDAY), TUESDAY(Calendar.TUESDAY), WEDNESDAY(
            Calendar.WEDNESDAY), THURSDAY(Calendar.THURSDAY), FRIDAY(
            Calendar.FRIDAY), SATURDAY(Calendar.SATURDAY), SUNDAY(
            Calendar.SUNDAY);

    private int day;

    private WeekdayType(int day) {
        this.day = day;
    }

    public int getDay() {
        return day;
    }
}

所以在那段时间WeedayType.valueOf(allDay)给出了错误.....对此的任何建议。

尝试这样:

String allDays = "MONDAY,SUNDAY,FRIDAY";
        for (String day : allDays.split(",")) {
            System.out.println(WeekdayType.valueOf(day));
        }

您将收到以下错误

java.lang.IllegalArgumentException: No enum const class com.java.core.Test$WeekdayType.MONDAY,SUNDAY,FRIDAY

原因是您正在将以下String传递给您的WeedayType枚举,如异常所示,这是一个非法参数。

String allDays = "MONDAY,SUNDAY,FRIDAY"; 
WeedayType.valueOf(allDay); 

您可以传递给valueOf方法的有效值为“ MONDAY”,“ TUESDAY”等(即您的枚举名称)。 其他值给出java.lang.IllegalArgumentException,这是正确的行为。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM