Maison > Java > javaDidacticiel > Quelle est la meilleure façon de simuler des pointeurs de fonction en Java ?

Quelle est la meilleure façon de simuler des pointeurs de fonction en Java ?

Linda Hamilton
Libérer: 2024-12-02 19:57:10
original
900 Les gens l'ont consulté

What's the Best Way to Simulate Function Pointers in Java?

Alternative la plus proche aux pointeurs de fonction en Java

Java manque de pointeurs de fonction, ce qui présente un défi lors de la création de méthodes qui effectuent des tâches similaires avec des variations mineures. Pour résoudre ce problème, une alternative appropriée consiste à utiliser des classes internes anonymes.

Solution de classe interne anonyme

Une classe interne anonyme vous permet de définir une méthode sans créer de classe interne nommée distincte. classe. Il suit le modèle consistant à définir une interface avec la méthode requise et à l'implémenter dans une classe interne anonyme.

Par exemple, considérons une méthode qui prend une chaîne comme paramètre et renvoie un entier. Tout d'abord, définissez une interface :

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

Une méthode qui accepte un pointeur vers cette fonction ressemblerait à ceci :

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

Pour appeler cette méthode, créez une classe interne anonyme implémentant le interface :

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

Alternativement, Java 8 introduit des expressions lambda, qui fournissent une syntaxe plus concise pour cela objectif :

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

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