Junior
Habla sobre las expresiones lambda y los métodos de referencia en el contexto de la programación en Java y su aplicación en el desarrollo de Android.
sobes.tech AI
Respuesta de la IA
Las expresiones lambda son una notación concisa para crear funciones anónimas. Permiten pasar funcionalidad como argumento a un método o crear una función sin especificar su nombre. Sintaxis: (parámetros) -> { cuerpo }. Se utilizan para implementar interfaces con un solo método abstracto (interfaces funcionales).
Aplicación en Android:
- Manejadores de eventos (clics, eventos táctiles).
- Implementación de interfaces de oyentes (por ejemplo,
OnClickListener,OnCompleteListener). - Trabajo con la API Stream para procesar colecciones (filtrado, transformación).
// Antes de Java 8
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(context, "¡Clickeado!", Toast.LENGTH_SHORT).show();
}
});
// Usando expresión lambda
button.setOnClickListener(v -> {
Toast.makeText(context, "¡Clickeado!", Toast.LENGTH_SHORT).show();
});
Los métodos de referencia son una forma más concisa de referirse a métodos o constructores existentes sin ejecutarlos. Se usan para reemplazar expresiones lambda que simplemente llaman a un método.
Tipos de métodos de referencia:
- Referencia a método estático:
Clase::nombreMétodoEstático - Referencia a método de instancia de un objeto:
objeto::nombreMétodo - Referencia a método de instancia de un tipo arbitrario:
Tipo::nombreMétodo - Referencia a constructor:
Clase::new
Aplicación en Android:
- Acortar expresiones lambda al trabajar con oyentes.
- En la API Stream para aplicar métodos a los elementos del stream.
// Expresión lambda
List<String> nombres = Arrays.asList("Alice", "Bob");
nombres.forEach(nombre -> System.out.println(nombre));
// Método referencia
nombres.forEach(System.out::println);
Ventajas:
- Mejor legibilidad del código, especialmente en operaciones simples.
- Código más compacto.
- El uso en la API Stream hace que el procesamiento de colecciones sea más funcional y eficiente.