Maison > Java > javaDidacticiel > Comment puis-je transmettre des fonctions comme arguments en Java ?

Comment puis-je transmettre des fonctions comme arguments en Java ?

Barbara Streisand
Libérer: 2024-12-14 04:18:09
original
370 Les gens l'ont consulté

How Can I Pass Functions as Arguments in Java?

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);
}
Copier après la connexion

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; };
}
Copier après la connexion

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();
}
Copier après la connexion

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
}
Copier après la connexion

Et puis appeler la méthode dansMethod avec l'implémentation Callable :

dansMethod(100, new Callable<Integer>() {
    public Integer call() {
        return methodToPass();
    }
});
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal