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。

4

3 回答 3

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;
}
于 2013-04-09T05:37:22.610 回答
1

此链接将引导您访问 Java 7: http ://www.oracle.com/technetwork/java/javase/downloads/index.html

您将需要 Java 7,因此您可以Strings在 switch 语句中使用。

在 IDE 中创建新项目时(图中的 ide 为 eclispse)确保选择以 1.7 结尾的 Java

在此处输入图像描述

或者

只需让每个字符串对应一个int值。

于 2013-04-09T05:36:25.887 回答
1

String type isn't allowed to use as switch condition before JDK7
所以请使用Integer variableto 代替。

于 2013-04-09T05:36:46.757 回答