Junior
Fale sobre expressões lambda e métodos de referência no contexto da programação Java e sua aplicação no desenvolvimento Android.
sobes.tech IA
Resposta da IA
As expressões lambda são uma notação concisa para criar funções anónimas. Permitem passar funcionalidade como argumento de um método ou criar uma função sem especificar o seu nome. Sintaxe: (parâmetros) -> { corpo }. São usadas para implementar interfaces com um único método abstrato (interfaces funcionais).
Aplicação em Android:
- Manipuladores de eventos (cliques, eventos de toque).
- Implementação de interfaces de ouvintes (por exemplo,
OnClickListener,OnCompleteListener). - Trabalho com a API Stream para processar coleções (filtragem, transformação).
// Antes do Java 8
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(context, "Clicado!", Toast.LENGTH_SHORT).show();
}
});
// Com expressão lambda
button.setOnClickListener(v -> {
Toast.makeText(context, "Clicado!", Toast.LENGTH_SHORT).show();
});
Os métodos de referência são uma forma mais concisa de referir-se a métodos ou construtores existentes sem executá-los. São usados para substituir expressões lambda que apenas chamam um método.
Tipos de métodos de referência:
- Referência a método estático:
Classe::nomeMétodoEstático - Referência a método de instância de um objeto:
objeto::nomeMétodo - Referência a método de instância de um tipo arbitrário:
Tipo::nomeMétodo - Referência a construtor:
Classe::new
Aplicação em Android:
- Redução da sintaxe lambda ao trabalhar com ouvintes.
- Na API Stream para aplicar métodos aos elementos do stream.
// Expressão lambda
List<String> nomes = Arrays.asList("Alice", "Bob");
nomes.forEach(nome -> System.out.println(nome));
// Método referência
nomes.forEach(System.out::println);
Vantagens:
- Melhor legibilidade do código, especialmente para operações simples.
- Código mais compacto.
- O uso na API Stream torna o processamento de coleções mais funcional e eficiente.