簡體   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