Uso del tipo entero en la instrucción Switch en java [duplicado]
Esta pregunta ya tiene una respuesta aquí:
Uso de enteros en la declaración de cambio 6 respuestasEstaba escribiendo un código simple en Java para mi aplicación de Android y obtuve estos errores.
case expressions must be constant expressions
mientrasprivate static final Integer
es constante
private static final Integer INVALID_USER = 901;
private static final Integer SENDING_FAILED = 902;
private static final Integer OK = 903;
/*
*
* And some more project related declaration...
*
*/
switch (responseCode){
case INVALID_USER:
// logout
break;
case SENDING_FAILED:
//resend request
break;
case OK:
break;
}
Esto es porque solíaInteger Type
, luego cambié el tipo aint
y el problema está resuelto
Mi pregunta es por qué no podemos usarInteger
como una expresión de caso.Docs dice "Un conmutador funciona con los tipos de datos primitivos byte, short, char e int. También funciona con tipos enumerados (discutidos en Tipos de enumeración), la clase String y algunas clases especiales que envuelven ciertos tipos primitivos: Carácter, Byte, Corto e Entero " aunque variable es constante leíesta pregunta pero no obtuve nada