因此,我目前正在处理的应用程序需要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语句,以便每个案例都有一个returnthrow,即使对于不匹配的案例也是如此。

  ...
  if (monthNumber == 12)
      return "December";

  // No case matched.
  throw new IllegalArgumentException("Bad month number: " + monthNumber);
}


调用此方法的代码应捕获此异常并正确处理它。

关于java - 变量未初始化...但是是吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22183516/

10-11 00:40