Java 编译器错误,变量nameOfMonth可能尚未初始化
我收到一个编译器错误,表示变量Java 编译器错误,变量nameOfMonth可能尚未初始化,java,compiler-errors,identifier,Java,Compiler Errors,Identifier,我收到一个编译器错误,表示变量nameOfMonth可能尚未初始化 我知道这可能是一个简单的解决办法,但我被卡住了,似乎无法在谷歌上找到答案 public class Switch { public static void main ( String [] args ) { int month; String monthString, nameOfMonth; month=ConsoleInput.readInt("Ente
nameOfMonth
可能尚未初始化
我知道这可能是一个简单的解决办法,但我被卡住了,似乎无法在谷歌上找到答案
public class Switch
{
public static void main ( String [] args )
{
int month;
String monthString, nameOfMonth;
month=ConsoleInput.readInt("Enter Month in the form, e.g- January = 1, Febuary = 2, etc");
monthString = nameOfMonth;
System.out.println(monthString);
}
protected static String nameOfMonth(int month)
{
String monthString;
switch(month)
{
case 1: monthString = "January";
break;
case 2: monthString = "Febuary";
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;
default: monthString = "Invalid Month";
break;
}
return monthString;
}
}
如果要调用名为
nameOfMonth
的方法,则不希望用该名称声明另一个字符串。改变
String monthString, nameOfMonth;
month=ConsoleInput.readInt("Enter Month in the form, e.g- January = 1, Febuary = 2, etc");
monthString = nameOfMonth;
System.out.println(monthString);
到
如错误所述,您尝试在初始化变量(
nameOfMonth
)之前使用该变量的值
您需要使用:
month=ConsoleInput.readInt("Enter Month in the form, e.g- January = 1, Febuary = 2, etc");
String monthString = nameOfMonth(month);
由于您没有真正使用
nameOfMonth
变量,但是nameOfMonth
方法在分配的右侧使用之前,不会初始化nameOfMonth
:
String monthString, nameOfMonth;
month=ConsoleInput.readInt(
"Enter Month in the form, e.g- January = 1, Febuary = 2, etc");
monthString = nameOfMonth; // Correct compiler error here.
我怀疑该代码意在调用相同的命名方法
monthString = nameOfMonth(month);
并且不需要nameOfMonth
变量
monthString = nameOfMonth(month);