Maison > Java > javaDidacticiel > le corps du texte

Comment Java peut-il imiter les pointeurs de fonction pour le code modulaire ?

Susan Sarandon
Libérer: 2024-11-19 09:16:02
original
895 Les gens l'ont consulté

How Can Java Mimic Function Pointers for Modular Code?

Le substitut de Java aux pointeurs de fonction

Le manque de pointeurs de fonction de Java peut entraver la création de code modulaire et réutilisable. Cependant, il existe une solution : les classes internes anonymes.

Considérez l'exigence de plusieurs méthodes effectuant des opérations identiques, à l'exception d'une seule ligne de calcul. Idéalement, passer un pointeur de fonction suffirait, mais Java ne le prend pas en charge. L'alternative est de définir une interface avec la fonction souhaitée comme seul membre.

Par exemple, pour définir une fonction qui prend une chaîne et renvoie un entier :

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

Maintenant, un La méthode qui accepte un pointeur de fonction peut prendre une instance StringFunction :

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

L'appel de cette méthode ressemblerait à ceci :

ref.takingMethod(new StringFunction() {
    public int func(String param) {
        // Implementation for the single changed line
    }
});
Copier après la connexion

Dans Java 8, cela peut être encore simplifié à l'aide d'expressions lambda :

ref.takingMethod(param -> {
    // Implementation for the single changed line
});
Copier après la connexion

En utilisant des classes internes anonymes ou des expressions lambda, les programmeurs Java peuvent obtenir la fonctionnalité de la fonction pointeurs, offrant flexibilité et réutilisabilité du code.

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