首页 文章

在Java中将颜色映射到整数的方法

提问于
浏览
0

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

  • 1

    你可以使用颜色开关:

    void selectColor(int color) {
        switch(color) {
        case 1:
            // color1
            break;
        case 2:
            // color2
            break;
        case 3:
            // color3
            break;
        default:
            //defaultcolor
        }   
    }
    

    但是,定义枚举并将其传递给此函数而不是int值会更好 .

  • 0

    一些事情:

    你不应该在 switch 上使用 newColor 吗? (只是基于你的片段 . 不太确定你之间是否还有其他代码 .

    另外,在 case 上放一个 break . 否则,它将适用于所有情况

    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;
    

    希望能帮助到你 .

相关问题