Maison > Java > javaDidacticiel > le corps du texte

Comment puis-je simuler des pointeurs de fonction en Java ?

Patricia Arquette
Libérer: 2024-11-19 01:58:03
original
358 Les gens l'ont consulté

How Can I Simulate Function Pointers in Java?

Création de pointeurs de fonction en Java

Java n'a pas le concept de pointeurs de fonction, qui sont couramment utilisés pour transmettre des fonctions comme arguments à d'autres fonctions. Cependant, il existe des alternatives qui offrent des fonctionnalités similaires, telles que des classes internes anonymes.

Considérez une méthode qui implique un petit calcul qui diffère selon plusieurs méthodes. Une solution idéale serait de transmettre un pointeur de fonction pour gérer cette ligne de code.

Les classes internes anonymes à la rescousse

Les classes internes anonymes vous permettent de créer un instance d'une interface ou d'une classe abstraite directement dans votre code sans avoir à définir une classe distincte. Cette technique peut être utilisée pour simuler des pointeurs de fonction en Java.

Par exemple, si vous souhaitez transmettre une fonction avec un paramètre String qui renvoie un entier, vous pouvez définir une interface :

interface StringFunction {
    int func(String param);
}
Copier après la connexion

Une méthode qui accepte ce pointeur de fonction prendrait une instance StringFunction :

public void takingMethod(StringFunction sf) {
   int i = sf.func("my string");
   // do whatever ...
}
Copier après la connexion

Vous pouvez appeler cette méthode comme ceci :

takingMethod(new StringFunction() {
    public int func(String param) {
        // body
    }
});
Copier après la connexion

En Java 8 et versions ultérieures, vous pouvez simplifiez ce code à l'aide d'expressions lambda :

takingMethod(param -> bodyExpression);
Copier après la connexion

Les classes internes anonymes offrent une alternative viable aux pointeurs de fonction en Java en vous permettant de transmettre des fonctions comme arguments via une implémentation d'interface. Ils vous permettent de créer des blocs de code réutilisables qui peuvent être facilement personnalisés pour des tâches spécifiques.

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