Pasar un método como parámetro en Java
-
Pasar un método como parámetro mediante la función
lambda
en Java - Pasar un método como parámetro a un método personalizado en Java
- Pasar un método como parámetro usando la referencia de método en Java
Este tutorial presenta el paso de un método como parámetro en Java. Para ayudarlo a comprender mejor este tema, hemos incluido códigos de ejemplo.
No existe el concepto de un método de paso como parámetro en Java desde cero. Sin embargo, podemos lograr esto usando la función lambda y la referencia de método en Java 8. Entonces, en este artículo, nos enfocaremos más en estos dos temas para pasar un método como parámetro.
La función lambda o expresión lambda es un concepto que se introdujo en Java 8. Es una forma concisa de escribir una función siguiendo el enfoque de estilo funcional. Dado que Java y Java 8 se consideran lenguajes orientados a objetos, admiten el enfoque funcional para escribir el código.
Pasar un método como parámetro mediante la función lambda
en Java
Este es un ejemplo simple de lambda, donde lo estamos usando para iterar los elementos ArrayList
. Observe que estamos pasando la función lambda al método forEach()
de la interfaz Iterable
. La clase ArrayList
implementa la interfaz Iterable
.
Así es como podemos pasar un método (función lambda) como parámetro en Java:
public class SimpleTesting {
public static void main(String[] args) {
ArrayList<Integer> evens = new ArrayList<Integer>();
evens.add(10);
evens.add(20);
evens.add(30);
evens.add(40);
evens.forEach((n) -> { System.out.println(n); }); // passing lambda as a parameter
}
}
Producción :
10
20
30
40
Pasar un método como parámetro a un método personalizado en Java
Aparte del método incorporado forEach()
, podemos pasarlo como parámetro a un método personalizado. En este ejemplo, creamos una interfaz Doable
con un método doSomething()
. En la clase SimpleTesting
, tenemos un método show()
que llama al método doSomething()
. Dentro del método main (), creamos una función lambda y la pasamos al método show()
.
Observe que esta es la línea donde estamos pasando un método (función lambda) como parámetro a un método.
show("Hello", doa); // passing lambda function as parameter
interface Doable {
String doSomething(String str);
}
public class SimpleTesting {
public static void main(String[] args) {
Doable doa = (str) -> str + " Rohan";
show("Hello", doa); // passing lambda function as parameter
}
public static void show(String msg, Doable doa) {
String greeting = doa.doSomething(msg);
System.out.println(greeting);
}
}
Producción :
Hello Rohan
Pasar un método como parámetro usando la referencia de método en Java
Esta es otra solución que se puede utilizar para pasar un método como parámetro a un método. También se introdujo con la función lambda en la versión Java 8. En este ejemplo, usamos el concepto de referencia de método para pasar el método show()
como parámetro al constructor Thread()
, que se ejecuta durante el tiempo de ejecución. Vea el resultado del ejemplo de código aquí:
public class SimpleTesting {
public static void main(String[] args) {
// Passing method reference as a parameter
Thread thread = new Thread(SimpleTesting::show);
thread.start();
}
public static void show() {
System.out.println("My Thread");
}
}
Producción :
My Thread