Passer des fonctions en tant qu'arguments en Java
En Java, la possibilité de passer des fonctions en tant qu'arguments améliore la polyvalence du code. Pour y parvenir, il existe différentes approches selon la version Java que vous utilisez.
Java 8 et supérieur
Avec l'avènement des expressions lambda dans Java 8, en passant les fonctions comme arguments deviennent simples. Les expressions Lambda vous permettent de définir des fonctions anonymes qui implémentent une interface SAM (Single-Abstract-Method). Par exemple, vous pouvez définir l'interface suivante :
public interface MyInterface { String doSomething(int param1, String param2); }
Au sein d'une méthode qui accepte un argument de type MyInterface, vous pouvez désormais utiliser des expressions lambda pour passer une fonction comme suit :
class MyClass { public MyInterface myInterface = (p1, p2) -> { return p2 + p1; }; }
Avant Java 8
Avant Java 8, l'approche courante pour passer des fonctions en tant qu'arguments consistait à encapsulez-les dans une interface comme Callable. Considérons la méthode suivante :
public T myMethod(Callable<T> func) { return func.call(); }
Cette méthode accepte un argument de type Callable, qui représente une fonction qui renvoie une valeur de type T. Vous pouvez définir une implémentation Callable pour encapsuler votre fonction et la transmettre en tant que argument à myMethod.
Exemple d'utilisation :
Si vous avez une méthode appelée methodToPass que vous souhaitez passer en argument, vous pouvez créer une implémentation Callable comme suit :
public int methodToPass() { // do something } public void dansMethod(int i, Callable<Integer> myFunc) { // do something }
Et puis appeler la méthode dansMethod avec l'implémentation Callable :
dansMethod(100, new Callable<Integer>() { public Integer call() { return methodToPass(); } });
Conclusion :
Ces approches proposent différentes manières de transmettre des fonctions comme arguments en Java, en fonction de votre version de Java et de vos spécificités. exigences. En comprenant ces techniques, vous pouvez améliorer la flexibilité et la réutilisabilité de votre code Java.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!