Actualmente estoy tratando de usar una declaración de caso de cambio para convertir algunos valores de color en los estudios de Android, pero sigo siendo marcado como 'La etiqueta de cambio es inalcanzable'. Intenté recrear una nueva declaración de cambio de caso e incluso reiniciar Android Studio, pero el problema persiste.
Realmente no sé qué hacer. No veo nada que haga que estas declaraciones sean inalcanzables.
Aquí está el código antes mencionado a continuación:
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; }Aquí también hay una captura de pantalla del mensaje de advertencia que me da Android Studio.
Según su código, el byte alto de colorValue siempre es 0xFF.
int colorValue = 0xFF000000 | r | g | b;Pero en sus casos de cambio (excepto 'predeterminado') el byte alto es 0. Por lo tanto, estos casos son imposibles de alcanzar.