我正在处理我的Java类代码,我无法弄清楚如何创建一个接受int参数并根据该int更改颜色的方法。 这个问题特别要求我们:
在您的代码中,将每种颜色映射到一个整数(例如,在我的代码3中表示绿色。)如果传递给方法的数字无效,请将颜色更改为红色。有效颜色为“红色”,“黄色” “,”绿色“,”蓝色“,”洋红色“和”黑色“。
换句话说,我试图使用整数选择字符串颜色。我该怎么做呢?
我试过了:
public void changeColor(int newColor) {
switch(color) {
case 1:
// color1
case 2:
// color2
case 3:
// color3
default:
//defaultcolor
}
draw();
}
我收到编译错误说
不兼容的类型:int无法转换为java.lang.String
如果我没有正确输入代码,我道歉。我是编程新手。
答案 0 :(得分:1)
您可以使用颜色开关:
void selectColor(int color) {
switch(color) {
case 1:
// color1
break;
case 2:
// color2
break;
case 3:
// color3
break;
default:
//defaultcolor
}
}
然而,最好定义枚举并将其传递给此函数而不是int值。
答案 1 :(得分:0)
少数事情:
您不应该在newColor
上使用switch
吗? (只是基于你的代码片段。不太确定你是否还有其他代码。
另外,在break
上添加case
。否则,它将适用于所有情况
public void changeColor(int newColor) {
switch(newColor) {
case 1:
// color1
break;
case 2:
// color2
break;
case 3:
// color3
break;
default:
//defaultcolor
}
draw();
}
最后,根据您的异常(int无法转换为java.lang.String),您似乎试图将int
转换为代码上某处的String
。尝试使用Integer
而不是原始int
。
Integer number;
String numberInWords = Integer.toString(number);
而不是
int number;
希望它有所帮助。