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) 

Garanta sua matrícula hoje e ganhe + 2 meses grátis

Continue sua jornada tech com ainda mais tempo para aprender e evoluir

Quero aproveitar agora
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!!