我正在设置一种将用户输入的int month输入转换为String的方法,但是似乎无法返回String。
错误显示
变量monthString可能尚未初始化
public String StringMonth()
{
String monthString;
switch (month)
{
case 1: monthString = "January";
break;
case 2: monthString = "February";
break;
case 3: monthString = "March";
break;
case 4: monthString = "April";
break;
case 5: monthString = "May";
break;
case 6: monthString = "June";
break;
case 7: monthString = "July";
break;
case 8: monthString = "August";
break;
case 9: monthString = "September";
break;
case 10: monthString = "October";
break;
case 11: monthString = "November";
break;
case 12: monthString = "December";
break;
}
return monthString;
}
}
答案 0 :(得分:2)
这可以解决问题:
public String StringMonth()
{
String monthString = null;
switch (month)
...
您可能还希望有一个default
案例。并在分配默认值时考虑错误处理;应该发生什么?
答案 1 :(得分:1)
要解决此问题,只需String monthString = null;
,甚至更好String monthString = StringUtils.EMPTY;
初始化是指在使用变量之前为其分配初始值。如果已声明该变量但未初始化,则您将收到错误消息:
变量*****可能尚未初始化
因此,在您的情况下,您将收到此错误,因为您只有String monthString
,并且没有初始化 monthString
且其初始值导致错误消息。
我更喜欢String monthString = StringUtils.EMPTY
而不是String monthString = null
,这是因为我们为它分配的是实际的string
值,而不只是null
。
这是一个关于is StringUtils.EMPTY recommended的有趣话题,尽管它违背了我对使用StringUtils.EMPTY
的建议,但是我相信这很清楚(这只是我的观点,并不是说我是对的。 )。