A expressão lambda é uma forma de escrita criada especialmente por java8 para programação funcional, assim como jstl para jsp.
As formas de escrita comuns do Lambda apresentam as seguintes situações:
- Sem parâmetros
"()" não pode ser omitido, como:
Runnable runnable = () -> System.out.println("hello word");
- Existe um parâmetro
Você pode omitir "()" e o tipo de parâmetro, como:
button.addActionListener(event -> {
System.out.println("button clicked")
});
- Parâmetros múltiplos
Você pode omitir o tipo e exibir o tipo declarado quando necessário, como:
BinaryOperator<Long> add = (a, b) -> a + b;
BinaryOperator<Long> add = (Long a, Long b) -> a + b;
- O código de comportamento é apenas uma frase
Você pode omitir "{}" e retornar (se houver), como:
Function<Integer,Integer> function = (a)-> a+1;
- Quantas frases de código de comportamento
"{}" não pode ser omitido e cada linha de código termina com um ponto e vírgula, como:
Function<Integer,Integer> function = (a)-> {
System.out.println(a);
return a+1;
};