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 respuestas

Estaba 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

Respuestas a la pregunta(3)

Su respuesta a la pregunta