枚举和切换帮助。Java学习者
我是一个Java自学者,在这个问题上陷入了困境。尝试了不合理数量的组合和可能的解决方案,但遇到了更多的错误枚举和切换帮助。Java学习者,java,enums,switch-statement,runtime-error,Java,Enums,Switch Statement,Runtime Error,我是一个Java自学者,在这个问题上陷入了困境。尝试了不合理数量的组合和可能的解决方案,但遇到了更多的错误 public class SeasonsSwitch { enum Season { WINTER, SPRING, SUMMER, FALL } public static void main(String[] args){ String c
public class SeasonsSwitch {
enum Season {
WINTER,
SPRING,
SUMMER,
FALL
}
public static void main(String[] args){
String currentSeason;
currentSeason = TextIO.getWord();
switch (currentSeason){
case WINTER:
TextIO.put("Decemeber, January, February");
break;
case SPRING:
TextIO.put("March, April, May");
break;
case SUMMER:
TextIO.put("June, July, August");
break;
case FALL:
TextIO.put("September, October, November");
}
}
}
error. cannot find symbol
case WINTER
error. cannot find symbol
case SPRING
error. cannot find symbol
case SUMMER
error. cannot find symbol
case FALL
原因是您正在传递一个
字符串
,以切换并检查枚举
上的大小写。因此,类型不匹配
请确保这两种类型必须相同或可转换。原因是您正在传递一个
字符串来切换并检查枚举上的大小写。因此,类型不匹配
请确保两者必须是相同或可转换的类型。使用seasure.valueOf
将枚举常量的字符串表示形式转换为枚举常量
Season s = Season.valueOf(currentSeason);
switch (s){
方法返回具有指定名称的指定enumtype的枚举常量。名称必须与用于在此类型中声明枚举常量的标识符完全匹配
使用seasure.valueOf
将枚举常量的字符串表示形式转换为枚举常量
Season s = Season.valueOf(currentSeason);
switch (s){
方法返回具有指定名称的指定enumtype的枚举常量。名称必须与用于在此类型中声明枚举常量的标识符完全匹配
您必须在每个case语句中匹配switch语句中提供的相同类型
在您的案例中,值是一个字符串,因此每个case语句都应该是String类型。目前我不确定夏天、秋天等是什么类型
编辑:
我发现夏季、秋季等属于seasure
类型,因此,首先将currentSeason
转换为枚举,然后打开转换后的值。您必须在每个case语句中匹配switch语句中提供的相同类型
在您的案例中,值是一个字符串,因此每个case语句都应该是String类型。目前我不确定夏天、秋天等是什么类型
编辑:
我发现夏季、秋季等属于季节
,因此,首先将当前季节
转换为枚举,然后打开转换后的值。您必须对提供给开关及其案例
语句的值使用相同的类型。您必须对提供给开关及其案例
语句的值使用相同的类型。请注意,如果使用了无效的季节,引发异常。请注意,如果使用了无效的季节,则会引发异常。