Java 8 e lambdas (palestra Techday 2.0)

1,536
-1

Published on

Palestra no evento: http://www.cesar.edu.br/techday-2-0/ título: Novidades do Java 8

Resumo: Faremos uma discussão sobre as Expressões Lambda e os impactos da incorporação desta
funcionalidade na linguagem, além das principais novidades do Java 8.

profdouglas.blogspot.com

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,536
On Slideshare
0
From Embeds
0
Number of Embeds
17
Actions
Shares
0
Downloads
24
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Java 8 e lambdas (palestra Techday 2.0)

  1. 1. Novidades Java 8 Douglas Frari @douglasddf profdouglas.blogspot.com youtube.com/user/douglasddf
  2. 2. Tópicos desta seção • visão geral • lambdas • exemplos tradicionais • exemplos com lambdas
  3. 3. visão geral
  4. 4. Lambdas • Recursos que alteram a forma como codificamos; • Influenciam na sintaxe da linguagem; • Conceitos de outras linguagens como Lisp, Haskell, (paradigma funcional); • Tornar mais fácil determinadas tarefas que necessitam de muitas linhas de código. • Sua principal característica são as entidades que podem ser utilizadas como argumentos e retornadas como valores de outras funções.
  5. 5. Por que lambdas em Java agora? • Sintaxe concisa • Deficiência com inner classes anônimas • Conveniente com nova lib streams: • palavras.forEach( s -> System.out.println(s)); • Construtor similar usado em outras linguagens: • Um passo a frente para suportar a programação funcional
  6. 6. vantagem principal: concisa e expressiva velho novo
  7. 7. outras vantagens • Encoraja a programação funcional • Quando essa abordagem é usada, muitas problemas são fáceis de resolver e resultam em código que é claro de ler e simples de manter; • Suporte Streams • São wrappers de collections que usam lambdas e podem tornar-se concorrentes automaticamente pelo compilador:
  8. 8. Lambdas formas básicas
  9. 9. onde usar lambdas? • Encontre alguma variável ou parâmetro que espera uma interface que tem um método • Um método abstrato? em java 7 não há uma distinção entre um método de interface e um método de interface abstrato. Isso é agora chamado de Interface funcional. • Código que usa interface é a mesma • Código que chama a interface pode suprimir com lambda
  10. 10. como argumento para métodos
  11. 11. como variáveis : +óbvio?
  12. 12. sintaxe (dica simples) substitua isso: por isso:
  13. 13. exemplo velho estilo novo estilo
  14. 14. ordenando por tamanho velho estilo novo estilo
  15. 15. ordenando por nomes código?
  16. 16. tipos inferidos: boa ideia • Tipos em lista de argumentos podem ser omitidos substitua isso: por isso:
  17. 17. Expressões corpo • Não precisa usar o return, a menos que a expressão contenha mais de uma linha. substitua isso: por isso:
  18. 18. omitindo os ( ) • se o método tem um simples argumento, pode-se omitir os parênteses substitua isso: por isso:
  19. 19. exemplo (listener p/ buttons)
  20. 20. Java 7 vs. Java 8
  21. 21. qual é mais simples?
  22. 22. pacote: java.util.function
  23. 23. dúvidas?
  24. 24. Referências • http://docs.oracle.com/javase/tutorial/java/javaOO/la mbdaexpressions.html • http://www.slideshare.net/martyhall/java-8-tutorial- lambda-expressions-part-1 • https://github.com/edermag/java8-is-back
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×