2013-05-20 52 views
-16

我收到编译器错误,说明变量nameOfMonth可能尚未初始化。编译器错误,变量nameOfMonth可能尚未初始化

我知道这可能是一个简单的修复,但我卡住了,似乎无法在Google上找到答案。

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

回答

0

你想调用一个名为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); 

String month=ConsoleInput.readInt("Enter Month in the form, e.g- January = 1, Febuary = 2, etc"); 
    String monthString = nameOfMonth(month); 
    System.out.println(monthString); 
0

由于错误状态,您尝试使用一个变量(nameOfMonth)值之前它被初始化。

您需要使用:

month=ConsoleInput.readInt("Enter Month in the form, e.g- January = 1, Febuary = 2, etc"); 
String monthString = nameOfMonth(month); 

当你真的不使用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. 

我怀疑意味着调用相同的命名方法的代码:

2

nameOfMonth它被用来在分配的右侧前未初始化。

monthString = nameOfMonth(month); 

nameOfMonth变量是不需要的。