Fernando Franzini Blog

Um uso muito comum de Java é a instrução for, fazendo um contator dentro das iterações do comando. Veja um exemplo:

E com a chegada do Java 8, estamos todos praticamente deixando de fazer esse tipo de instrução, favorecendo a expressão funcional com lambda. E aí que entra o problema. Um lambda Java 8 só permite acessar variáveis externas que sejam final, aquelas que não podem ser alteradas, impedindo o pessoal de usar a mesma estrutura de um contador simples dentro da expressão funcional. Veja um exemplo:

O que fazer? Devemos continuar usando a velha e verbosa antiga estrutura mesmo com Java 8? Claro que não xuxuzinho! Engane o compilador. Use uma referência para um objeto com final, alterando o conteúdo dele como se fosse um contator. Uma forma simples, sem a necessidade de criar uma classe proprietária wrapper para isso é usar a referência de array simples…

Ver o post original 80 mais palavras

Anúncios