-1

変換のすべての例は、String to Enum1 つの文字列のみを使用しますが、私の例の文字列では、このように...

String allDays="MONDAY,SUNDAY,FRIDAY";

そして、このような私の列挙型クラス..

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)でエラーが発生しています.....これに関する提案..

4

2 に答える 2

2

このようにしてみてください:

String allDays = "MONDAY,SUNDAY,FRIDAY";
        for (String day : allDays.split(",")) {
            System.out.println(WeekdayType.valueOf(day));
        }
于 2012-12-18T06:04:44.497 に答える
1

以下のエラーが表示されます

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

その理由は、例外が示すように、次の文字列をWeedayType列挙型に渡しているためです。これは不正な引数です。

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

valueOf メソッドに渡すことができる有効な値は、「MONDAY」、「TUESDAY」などです (つまり、列挙名)。他の値では、正しい動作である java.lang.IllegalArgumentException が発生します。

于 2012-12-18T06:22:31.293 に答える