因此,我目前正在处理的应用程序需要3个将值返回到另一个类的方法。我遇到的问题是第二种方法,该方法将第一种方法的用户输入与相应的“命名月份”相关联。我不断收到来自此集合的“变量可能尚未初始化”错误:
public String MonthName(int monthNumber){
/*This method assigns a Name based on the users input and
**returns the proper name of the corresponding month
** @para: monthNameFin is the final name of the month
** rest should be self-explanatory */
String monthNameFin;
if (monthNumber == 1)
monthNameFin = "January";
if (monthNumber == 2)
monthNameFin = "February";
if (monthNumber == 3)
monthNameFin = "March";
if (monthNumber == 4)
monthNameFin = "April";
if (monthNumber == 5)
monthNameFin = "May";
if (monthNumber == 6)
monthNameFin = "June";
if (monthNumber == 7)
monthNameFin = "July";
if (monthNumber == 8)
monthNameFin = "August";
if (monthNumber == 9)
monthNameFin = "September";
if (monthNumber == 10)
monthNameFin = "October";
if (monthNumber == 11)
monthNameFin = "November";
if (monthNumber == 12)
monthNameFin = "December";
return monthNameFin;
}
任何帮助是极大的赞赏!
最佳答案
如果monthNumber
小于或等于0,或者大于等于13,则总是有可能没有匹配的案例。这意味着存在变量未初始化的可能性。
由于超出1-12范围的数字没有意义,因此如果没有大小写匹配,最好在底部放置IllegalArgumentException
。
此示例还包括将所有案例分配语句更改为return
语句,以便每个案例都有一个return
或throw
,即使对于不匹配的案例也是如此。
...
if (monthNumber == 12)
return "December";
// No case matched.
throw new IllegalArgumentException("Bad month number: " + monthNumber);
}
调用此方法的代码应捕获此异常并正确处理它。
关于java - 变量未初始化...但是是吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22183516/