有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

我正在设置一个方法,将用户输入的int-month转换为字符串,但似乎无法返回字符串

错误显示

Variable monthString might not have been initialized

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) 个答案

  1. # 1 楼答案

    要解决这个问题,只需执行String monthString = null;或者更好地执行String monthString = StringUtils.EMPTY;

    初始化变量意味着在使用变量之前为其指定初始值。如果变量已声明但未初始化,则会收到错误消息:

    Variable ***** might not have been initialized

    因此,在您的例子中,您会得到这个错误,因为您只有String monthString,并且您没有用初始值初始化monthString导致错误消息

    我更喜欢String monthString = StringUtils.EMPTY而不是String monthString = null,因为我们给它赋值的是一个实际的string值,而不仅仅是null

    这是一个关于is StringUtils.EMPTY recommended的有趣话题,尽管它与我建议使用StringUtils.EMPTY的内容相悖,但我相信这清楚地表明了这一点(这只是我的观点,并不是说我是对的)

  2. # 2 楼答案

    这将实现以下目的:

    public String StringMonth()
    {
       String monthString = null;
       switch (month)
    ...
    

    您可能还希望有一个default案例。并考虑在分配默认值时错误处理;该怎么办