Android Studio Switch 标签无法访问,原因不明
Android Studio Switch label is unreachable for no apparent reason
我目前正在尝试使用 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.
根据您的代码,colorValue 的高字节始终为 0xFF。
int colorValue = 0xFF000000 | r | g | b;
但是在你的switch cases中('default'除外)高字节是0。所以这些cases是不可能命中的。
我目前正在尝试使用 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.
根据您的代码,colorValue 的高字节始终为 0xFF。
int colorValue = 0xFF000000 | r | g | b;
但是在你的switch cases中('default'除外)高字节是0。所以这些cases是不可能命中的。