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
Exemplos para todas as interfaces funcionais do pacote java.util.function, inclusive falando sobre tipos primitivos. Ainda falta a parte de Optional e mais exemplos de cenários reais onde utilizar as interfaces funcionais.
Issue #21
Copy file name to clipboardExpand all lines: book/04-lambda/sections/03-built-in-interfaces.asc
+255Lines changed: 255 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -10,6 +10,261 @@ Develop code that uses the built-in interfaces included in the java.util.functio
10
10
Desenvolver código que usa as interfaces embutidas no pacote java.util.function, como Function, Consumer, Supplier, UnaryOperator, Predicate e a API de Optional, incluindo as variações de tipos primitivos e binários das interfaces
A saída no console irá imprimir a data atual. Está sendo apresentada a data em que este código foi escrito.
41
+
+
42
+
Perceba que a expressão lambda está simplificada, sem chaves `{}` ou `return`. Caso tenha dúvidas com relação a isso, consulte novamente a seção sobre expressões lambda.
43
+
44
+
. Um `Supplier` pode ser utilizado para fornecer uma função custosa, para que seja chamada apenas se for necessário:
. `UnaryOperator` é uma interface funcional que recebe um parâmetro de entrada e retorna um valor do mesmo tipo da entrada. Sua definição na JDK é a seguinte:
216
+
+
217
+
[source,java,indent=0]
218
+
.java.util.function.Function<T, R>
219
+
----
220
+
@FunctionalInterface
221
+
public interface UnaryOperator<T> extends Function<T, T> {
222
+
223
+
}
224
+
----
225
+
+ Perceba que não existe método abstrato declarado, pois ela apenas estende a interface `Function` já existente.
226
+
227
+
. `BinaryOperator` é uma interface funcional que recebe dois parâmetros de entrada do mesmo tipo, e retorna um valor do mesmo tipo das entradas. Sua definição na JDK é a seguinte:
228
+
+
229
+
[source,java,indent=0]
230
+
.java.util.function.BiFunction<T>
231
+
----
232
+
@FunctionalInterface
233
+
public interface BinaryOperator<T> extends BiFunction<T,T,T> {
234
+
235
+
}
236
+
----
237
+
+ Perceba que não existe método abstrato declarado, pois ela apenas estende a interface `BiFunction` já existente.
238
+
239
+
. Implementações possíveis para `UnaryOperator` ou `BinaryOperator` são funções que soma um número fixo ou soma um número ao outro:
0 commit comments