por que a constante de caso deve ser constante em tempo de compilação no switch?
Respostas:
5 para resposta № 1O formato do bytecode exige que seja uma constante, por um lado.
Além disso, se for uma constante, o compilador pode verificar se todos os valores são diferentes - você não pode ter o mesmo caso duas vezes. Você não pode fazer isso se os valores puderem mudar no tempo de execução.
Se você não quiser usar constantes, provavelmente é melhor usar apenas if / else.