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

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

Susan Sarandon
Susan Sarandonoriginal
2024-11-19 09:16:02899parcourir

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

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 ...
}

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

ref.takingMethod(new StringFunction() {
    public int func(String param) {
        // Implementation for the single changed line
    }
});

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

ref.takingMethod(param -> {
    // Implementation for the single changed line
});

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!

Déclaration:
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