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);