【问题标题】:Android Studio Switch label is unreachable for no apparent reasonAndroid Studio Switch 标签无缘无故无法访问
【发布时间】:2021-12-26 05:41:26
【问题描述】:

我目前正在尝试使用 switch case 语句来转换 Android 工作室中的一些颜色值,但我一直被标记为“Switch Label is Unreachable”。我尝试重新创建一个新的 switch case 语句,甚至重新启动 Android Studio,但问题仍然存在。

我真的不知道该怎么做。我没有看到任何会使这些语句无法访问的东西。

下面是上述代码:

public int getColorHex(int color)
    {
        int r = (Color.red(color) << 16) & 0x00FF0000;
        int g = (Color.green(color) << 8) & 0x0000FF00;
        int b = Color.blue(color) & 0x000000FF;

        int colorValue = 0xFF000000 | r | g | b;
        int hexValue;

        switch (colorValue) {
            case 0x000000:
                hexValue = 0;
                break;

            case 0xFFFFFF:
                hexValue = 1;
                break;

            case 0x00FF00:
                hexValue = 2;
                break;

            case 0x0000FF:
                hexValue = 3;
                break;

            case 0xFF0000:
                hexValue = 4;
                break;

            case 0xFFFF00:
                hexValue = 5;
                break;

            case 0xFF8000:
                hexValue = 6;
                break;

            case 0xFFDCC8:
                hexValue = 7;
                break;

            default:
                hexValue = 8;
                break;
        }

        return hexValue;
    }

Here's also a screenshot of the warning message Android Studio gives me.

【问题讨论】:

    标签: java android switch-statement


    【解决方案1】:

    根据您的代码,colorValue 的高字节始终为 0xFF。

    int colorValue = 0xFF000000 | r | g | b;
    

    但是在你的 switch 情况下('default' 除外),高字节是 0。所以这些情况是不可能命中的。

    【讨论】:

    • 我觉得自己像个白痴一样错过了非常感谢你
    猜你喜欢
    • 2012-10-23
    • 2011-02-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-11
    • 1970-01-01
    • 2023-04-03
    • 1970-01-01
    相关资源
    最近更新 更多