首页 > 解决方案 > Android Studio Switch 标签无缘无故无法访问

问题描述

我目前正在尝试使用 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;
    }

这也是 Android Studio 给我的警告消息的屏幕截图。

标签: javaandroidswitch-statement

解决方案


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

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

但是在您的开关情况下(“默认”除外),高字节为 0。所以这些情况是不可能命中的。


推荐阅读