Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

01.Exercício 2

Quando declarado uma variavel como final, mesmo que dentro do parametro, ela não se torna constante?

static int x(final int l) 
2 respostas
solução!

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!!