在Java

时间:2015-11-02 02:23:53

标签: java string colors int bluej

我正在处理我的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

如果我没有正确输入代码,我道歉。我是编程新手。

2 个答案:

答案 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;

希望它有所帮助。