当我尝试返回字符串时出现错误

时间:2019-06-14 20:31:40

标签: java

我正在设置一种将用户输入的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;
    }
}

2 个答案:

答案 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的建议,但是我相信这很清楚(这只是我的观点,并不是说我是对的。 )。