Contador Exerno Com Lambda Java8

Postado em Atualizado em

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 com 1 elemento. Veja com se resolve:

E você? Já ta usando programação funcional com Java 8? Ou ainda ta fazendo código antigo e verboso? Sai dessa vida e seja feliz com Java 8. Veja nosso curso de Desenvolvedor Funcional Java 8.

“As tentações que vocês têm de enfrentar são as mesmas que os outros enfrentam; mas Deus cumpre a sua promessa e não deixará que vocês sofram tentações que vocês não têm forças para suportar.” 1 Coríntios 10:13

Anúncios