1、错误描述
请输入:夏天
Exception in thread "main" java.lang.IllegalArgumentException: No enum constant com.you.example.EnumExample.Season.澶忓ぉ
at java.lang.Enum.valueOf(Enum.java:236)
at com.you.example.EnumExample.main(EnumExample.java:63)
2、错误原因
/**
*
* 项目名称:DABF
* 项目包名:com.you.example
* 文件名称:EnumExample.java
* 类型名称:EnumExample
* 创建作者:游海东
* 创建日期:2017-1-7
* 创建时间:下午4:01:45
* 项目版本:V1.0
*/
package com.you.example;
import java.util.Scanner;
/**
* 文件名称:EnumExample.java
* 文件类型:EnumExample
* 文件包名:com.you.example
* 创建作者:游海东
* 创建日期:2017-1-7
* 创建时间:下午4:01:45
*/
public class EnumExample
{
enum Season
{
SPRING,SUMMER,AUTUMN,WINTER;
private String season;
/**
* @return the season
*/
public String getSeason() {
return season;
}
/**
* @param season the season to set
*/
public void setSeason(String season) {
this.season = season;
}
}
/**
* 方法描述:
* 创建作者:游海东
* 创建日期:2017-1-7
* 创建时间:下午4:01:45
* 方法名称:main
* 方法类型:EnumExample
* 返回类型:void
* @param args
*/
public static void main(String[] args)
{
Scanner in = new Scanner(System.in);
System.out.printf("请输入:");
String cut = in.next().toUpperCase();
Season season = Enum.valueOf(Season.class,cut);
if(season==Season.SPRING)
{
System.out.println("春天");
}
else if(season==Season.SUMMER)
{
System.out.println("夏天");
}
else if(season==Season.AUTUMN)
{
System.out.println("秋天");
}
if(season==Season.WINTER)
{
System.out.println("冬天");
}
}
}
枚举类型只有SPRING,SUMMER,AUTUMN,WINTER四种,但是输入的时候输入了中文字符,不在范围内,导致报错
3、解决办法
输入时:SUMMER,输入英文字符