Ficou meio estranha essa frase… Pq se vc declarar uma variável como constante ela não será mais variável… :lol:
Mas o erro de compilação é esse mesmo, só pode colocar no case uma constante.
Agora se jogar um final lá na declaração… tb vai dar erro… pq o case (byte) z: ficará igual ao case (int) (byte) 150: e não pode ter dois cases iguais…
Na verdade o que ocorre é um erro na compilação do código.
Uma vez que o switch - case não aceita variável como comparação , logo declarando z como constante final, você está marcando aquela literal no caso o valor 150 como z, isso só diz que 150 tem um nome, então
[quote=“Código”] case (int) (byte) 150:
[/quote]
teria uma ambiguidade de nomes, na verdade teriamos uma duplicacao de comparacao no switch - case, é como se estivessemos escrevendo:
Lembrando que switch - case só aceita comparação de literais inteiras e de chars…