Lambdas e interfaces funcionais - Java 8

Um recurso comum em algumas linguagens da JVM como Groovy e Scala, lambdas, também conhecidos como closures, são recursos comuns e poderosos para desenvolvedores funcionais. A primeira vez que eu vi achei muito estranho, mas depois de me aventurar um pouco, achei produtivo e interessante.

Em resumo, é o que fazíamos com classe anônima, mas de uma maneira menos verbosa e mais poderosa, temos um conjuntos de parâmetros e uma setinha "->" com o corpo da implementação: "parametros -> corpo". Temos algumas regras a serem seguidas:

  • Utilizar chaves é opcional para sentenças simples (não múltiplas)
  • Utilizar "return" é opcional se você tem uma expressão que retorna um valor
  • Utilizar parênteses no parâmetro é opcional, se você tem apenas um parâmetro
  • Declaração de tipos do parâmetro também é opcional

 

Sobre: Thiago Galbiatti Vespa

Thiago Galbiatti Vespa é mestre em Ciências da Computação e Matemática Computacional pela USP e bacharel em Ciências da Computação pela UNESP. Coordenador de projetos do JavaNoroeste, membro do JCP (Java Community Process), consultor Oracle, arquiteto de software de empresas de médio e grande porte, palestrante de vários eventos e colaborador de projetos open source. Possui as certificações: Oracle Certified Master, Java EE 5 Enterprise Architect – Step 1, 2 and 3; Oracle WebCenter Portal 11g Certified Implementation Specialist; Oracle Service Oriented Architecture Infrastructure Implementation Certified Expert; Oracle Certified Professional, Java EE 5 Web Services Developer; Oracle Certified Expert, NetBeans Integrated Development Environment 6.1 Programmer; Oracle Certified Professional, Java Programmer; Oracle Certified Associate, Java SE 5/SE 6