use*_*606 0 java string incompatibility switch-statement
我正在开发一个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;
}
Run Code Online (Sandbox Code Playgroud)
这是我得到的错误:
不可比的类型 - 找到java.lang.String但是期望的int.
使用String的Switch case仅适用于Java7
或者,您可以使用枚举代替早于任何版本的版本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;
}
Run Code Online (Sandbox Code Playgroud)