Uso do tipo Inteiro na instrução Switch em java [duplicate]
Esta pergunta já tem uma resposta aqui:
Usando inteiro na instrução Switch 6 respostasEu estava escrevendo algum código simples em java para o meu aplicativo Android e recebi esses erros.
case expressions must be constant expressions
enquantoprivate static final Integer
é 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;
}
Isso é porque eu useiInteger Type
, então mudei o tipo paraint
e o problema está resolvido
Minha pergunta é por que não podemos usarInteger
como uma expressão de caso.O Docs diz "Uma opção funciona com os tipos de dados primitivos byte, short, char e int. Também funciona com tipos enumerados (discutidos em Tipos de enumeração), a classe String e algumas classes especiais que envolvem certos tipos primitivos: Character, Byte, Curto e Inteiro " embora variável seja constante eu liessa questão mas não recebi nada