Pasar un método como parámetro en Java

Mohammad Irfan 12 octubre 2023
  1. Pasar un método como parámetro mediante la función lambda en Java
  2. Pasar un método como parámetro a un método personalizado en Java
  3. Pasar un método como parámetro usando la referencia de método en Java
Pasar un método como parámetro 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

Artículo relacionado - Java Method