缺少带开关的 return 语句
Missing return statement with switch
public AlertStatus nextStatus(){
int randNum = randNumGen.nextInt(3);
switch(randNum){
case 0: return new AlertStatusGreen();
case 1: return new AlertStatusYellow();
case 2: return new AlertStatusRed();
default: System.out.println("ERROR: no random number.");
}
}
这是我必须为学校制作的程序的 classes 之一中的方法。
该开关采用随机整数并将其用于return某个class的对象,该对象派生自class AlertStatus。
出于某种原因,我在上面代码块的第 9 行(上面代码的最后一行)中不断收到错误提示 "missing return statement }"。我不明白为什么要这样说,因为我已经为每个案例准备了 return 个陈述。
在 default
的情况下,您没有返回任何东西。我想你想要像
这样的东西
public AlertStatus nextStatus(){
int randNum = randNumGen.nextInt(3);
switch(randNum){
case 0: return new AlertStatusGreen();
case 1: return new AlertStatusYellow();
default: return new AlertStatusRed();
// default: System.out.println("ERROR: no random number.");
}
}
默认大小写必须 return 一些东西。如果你想指出一个错误,最好的办法是抛出一个异常来指出它。
public AlertStatus nextStatus(){
int randNum = randNumGen.nextInt(3);
switch(randNum){
case 0: return new AlertStatusGreen();
case 1: return new AlertStatusYellow();
case 2: return new AlertStatusRed();
default: throw new InvalidArgumentException("invalid argument");
}
}
public AlertStatus nextStatus(){
int randNum = randNumGen.nextInt(3);
switch(randNum){
case 0: return new AlertStatusGreen();
case 1: return new AlertStatusYellow();
case 2: return new AlertStatusRed();
default: System.out.println("ERROR: no random number.");
}
}
这是我必须为学校制作的程序的 classes 之一中的方法。 该开关采用随机整数并将其用于return某个class的对象,该对象派生自class AlertStatus。
出于某种原因,我在上面代码块的第 9 行(上面代码的最后一行)中不断收到错误提示 "missing return statement }"。我不明白为什么要这样说,因为我已经为每个案例准备了 return 个陈述。
在 default
的情况下,您没有返回任何东西。我想你想要像
public AlertStatus nextStatus(){
int randNum = randNumGen.nextInt(3);
switch(randNum){
case 0: return new AlertStatusGreen();
case 1: return new AlertStatusYellow();
default: return new AlertStatusRed();
// default: System.out.println("ERROR: no random number.");
}
}
默认大小写必须 return 一些东西。如果你想指出一个错误,最好的办法是抛出一个异常来指出它。
public AlertStatus nextStatus(){
int randNum = randNumGen.nextInt(3);
switch(randNum){
case 0: return new AlertStatusGreen();
case 1: return new AlertStatusYellow();
case 2: return new AlertStatusRed();
default: throw new InvalidArgumentException("invalid argument");
}
}