我正在开发一个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。
答案 0 :(得分:5)
使用String切换案例仅适用于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)
此链接将引导您进入Java 7: http://www.oracle.com/technetwork/java/javase/downloads/index.html
您将需要Java 7,因此您可以在switch语句中使用Strings
。
在IDE中创建新项目时(图中的ide是eclispse),请确保选择以1.7结尾的Java
或
只需将每个字符串对应一个int
值。
答案 2 :(得分:1)
String type isn't allowed to use as switch condition before JDK7
,
所以请使用Integer variable
代替。