Passer une méthode en paramètre en Java

Mohammad Irfan 12 octobre 2023
  1. Passer une méthode en paramètre en utilisant la fonction lambda en Java
  2. Passer une méthode en tant que paramètre à une méthode personnalisée en Java
  3. Passer une méthode en tant que paramètre à l’aide de la référence de méthode en Java
Passer une méthode en paramètre en Java

Ce tutoriel présente le passage d’une méthode en paramètre en Java. Pour vous aider à mieux comprendre ce sujet, nous avons inclus des exemples de codes.

Il n’y a pas de concept de méthode de passage en tant que paramètre en Java à partir de zéro. Cependant, nous pouvons y parvenir en utilisant la fonction lambda et la référence de méthode dans Java 8. Ainsi, dans cet article, nous nous concentrerons davantage sur ces deux sujets pour passer une méthode en tant que paramètre.

La fonction lambda ou expression lambda est un concept qui a été introduit dans Java 8. C’est une manière concise d’écrire une fonction en suivant l’approche du style fonctionnel. Étant donné que Java et Java 8 sont considérés comme des langages orientés objet, ils prennent en charge l’approche fonctionnelle pour écrire le code.

Passer une méthode en paramètre en utilisant la fonction lambda en Java

Il s’agit d’un exemple simple de lambda, où nous l’utilisons pour itérer les éléments ArrayList. Notez que nous passons la fonction lambda à la méthode forEach() de l’interface Iterable. La classe ArrayList implémente l’interface Iterable.

Voici donc comment nous pouvons passer une méthode (fonction lambda) en paramètre 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
  }
}

Production:

10
20
30
40

Passer une méthode en tant que paramètre à une méthode personnalisée en Java

En dehors de la méthode intégrée forEach(), nous pouvons la passer en paramètre à une méthode personnalisée. Dans cet exemple, nous avons créé une interface Doable ayant une méthode doSomething(). Dans la classe SimpleTesting, nous avons une méthode show() qui appelle la méthode doSomething(). Dans la méthode main(), nous avons créé une fonction lambda et l’avons transmise à la méthode show().

Notez qu’il s’agit de la ligne où nous passons une méthode (fonction lambda) en tant que paramètre d’une méthode.

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);
  }
}

Production:

Hello Rohan

Passer une méthode en tant que paramètre à l’aide de la référence de méthode en Java

C’est une autre solution qui peut être utilisée pour passer une méthode en paramètre à une méthode. Il a également été introduit avec la fonction lambda dans la version Java 8. Dans cet exemple, nous avons utilisé le concept de référence de méthode pour passer la méthode show() en tant que paramètre au constructeur Thread(), qui s’exécute pendant l’exécution. Voir la sortie de l’exemple de code ici :

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");
  }
}

Production:

My Thread

Article connexe - Java Method