2013-04-09 4 views
0

Я разрабатываю Java-класс. Могу ли я получить некоторую помощь в использовании оператора Switch с типом данных String.Вывод строки String

Вот мой код:

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' может быть использован только в' switch' заявление под Java 7 – MadProgrammer

+0

Какое сырье производит это исключение? Вы уверены, что используете Java7? – danieln

+0

убедитесь, что ваш classpath нацелен на java7, а не на старый java-sdk. – Ankit

ответ

1

Эта ссылка приведет вас к Java 7: http://www.oracle.com/technetwork/java/javase/downloads/index.html

Вам потребуется Java 7, так что вы можете использовать Strings в распределительном заявлении.

При создании нового проекта в вашей IDE (язь в картине eclispse) убедитесь, что вы выберите Java, который заканчивается с 1,7

enter image description here

или

Просто сделайте каждую строку соответствуют значению int.

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

+1 для альтернативы 'enum' – MadProgrammer

Смежные вопросы