2013-04-09 99 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