2013-04-09 101 views
0

我正在開發Java類。我能否在使用String數據類型的Switch語句時給予一些幫助?字符串切換語句

這裏是我的代碼:

String testString = "Nut"; 
    switch (testString) 
    { 
     case "Nut": 
      if(NutCount < NutMaxCount) 
       NutCount += 1; 
      break; 
     case "Caramel": 
      if(CaramelCount < CaramelMaxCount) 
       CaramelCount += 1; 
      break; 
     case "Chocolate": 
      if(ChocolateCount < ChocolateMaxCount) 
       ChocolateCount += 1; 
      break; 
     case "Marzipan": 
      if(MarzipanCount < MarzipanMaxCount) 
       MarzipanCount += 1; 
      break;       
    } 

這是我收到的錯誤:

不相容類型 - 發現java.lang.String中,但預計INT。

+10

'String'只能在'之開關語句中使用在Java 7下 – MadProgrammer 2013-04-09 05:32:05

+0

哪個原始的產生這個異常?你確定你在使用Java7嗎? – danieln 2013-04-09 05:32:24

+0

確保你的類路徑定位java7不是任何較老的java sdk。 – Ankit 2013-04-09 05:32:52

回答

1

String type isn't allowed to use as switch condition before JDK7,
所以請用Integer variable來代替。

5

開關箱與字符串只有Java7

工作或者,您也可以使用enum而不是爲任何版本早於Java7

String testString = "Nut"; 
ValueEnum enumval = ValueEnum.fromString(testString); 
switch (enumval) 
{ 
    case Nut: 
      if(NutCount < NutMaxCount) 
       NutCount += 1; 
      break; 
    case Caramel: 
      if(CaramelCount < CaramelMaxCount) 
       CaramelCount += 1; 
      break; 
    case Chocolate: 
      if(ChocolateCount < ChocolateMaxCount) 
       ChocolateCount += 1; 
      break; 
    case Marzipan: 
      if(MarzipanCount < MarzipanMaxCount) 
       MarzipanCount += 1; 
      break; 
} 
+1

爲'enum'替代+1 – MadProgrammer 2013-04-09 05:43:08