Quando declarado uma variavel como final, mesmo que dentro do parametro, ela não se torna constante?
static int x(final int l)
ATÉ 50% OFF
TÁ ACABANDO!
0 dias
0 horas
0 min
0 seg
Quando declarado uma variavel como final, mesmo que dentro do parametro, ela não se torna constante?
static int x(final int l)
Olá, Adonis!
Sua pergunta é muito interessante! Quando declaramos uma variável como final, ela se torna uma constante, sim. Isso significa que, uma vez atribuído um valor a ela, não podemos alterar esse valor.
No entanto, o que está acontecendo no código que você compartilhou é um pouco diferente. A variável l é declarada como final, o que significa que seu valor não pode ser alterado dentro do método x().
Mas o problema aqui é que l está sendo usada no case de um switch, que requer uma constante em tempo de compilação (um valor que é conhecido e não muda durante a execução do programa). Como l é um parâmetro do método, seu valor não é conhecido em tempo de compilação, mesmo sendo final. Isso é o que causa o erro de compilação.
Para ilustrar, se substituíssemos l por um valor constante conhecido em tempo de compilação, como 5, o código compilaria e funcionaria conforme esperado.
Espero ter ajudado e bons estudos!
Muito obrigado, Matheus!!