You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: book/04-lambda/sections/02-lambda-expression.asc
+6-4Lines changed: 6 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -34,6 +34,8 @@ Exemplos de expressões lambda:
34
34
* `(i, j, k) -> System.out.println(i + j + k)`
35
35
* `() -> System.out.println("nada")`
36
36
37
+
//-
38
+
37
39
. Expressões lambda podem ser entendidas como uma forma diferente de declarar classes anônimas.
38
40
+
39
41
[source,java,indent=0]
@@ -61,7 +63,7 @@ executei com expressão lambda
61
63
+
62
64
Veja que no exemplo acima o mesmo método `executeEApresenteMensagem` é invocado duas vezes. Na primeira vez é passada uma nova classe anônima. Na segunda vez é passado uma expressão lambda.
63
65
+
64
-
Veja também que seria impossível criar uma expressão lambda caso a interface não fosse funcional, ou seja, tivesse mais de um método abstrato. Seria impossível para o compilador saber que o que está sendo implementado dentro da expressão lambda é o método `execute` da interface `Executavel`.
66
+
Veja também que seria impossível criar uma expressão lambda caso a interface não fosse funcional, ou seja, tivesse mais de um método abstrato. O compilador não saberia identificar que o método `execute`, da interface `Executavel`, está sendo implementado dentro da expressão lambda.
65
67
66
68
. Existem muitos métodos já disponíveis no Java 8 que se beneficiam da sintaxe de expressões lambda, como o `forEach` de listas.
Veja que o novo método `forEach` executa a expressão lambda passada como parâmetro para cada item da lista, imprimindo todos no console. Veja também que essa expressão lambda recebe como parâmetro um número, que é o número da lista.
86
+
Veja que o novo método `forEach` executa a expressão lambda passada como parâmetro para cada item da lista, imprimindo todos no console. A expressão lambda recebe como parâmetro um número, que é o número da lista.
85
87
+
86
88
Neste caso, a interface funcional que está sendo implementada pela expressão lambda é chamada `Consumer`. Ela será explicada em detalhes em uma seção posterior, juntamente com outras interfaces funcionais padrões do Java 8. Nesta seção é importante apenas entender o que são as expressões lambda e como é sua sintaxe.
87
89
@@ -104,7 +106,7 @@ As duas funções lambda acima são idênticas, porém uma é mais explícita do
Perceba que o compilador identifica que a variável `x3` é alterada no final do método, e por isso não permite que ela seja utilizada na expressão lambda.
141
+
Perceba que o compilador identifica que a variável `x3` é alterada no final do método, e por isso, não permite que ela seja utilizada na expressão lambda.
140
142
141
143
. Em situações de ambiguidade, o compilador tenta descobrir o tipo da expressão lambda utilizando o contexto.
0 commit comments