Maison > Java > javaDidacticiel > le corps du texte

Comment puis-je simuler des pointeurs de fonction en Java à l'aide de classes internes anonymes ou d'expressions Lambda ?

Patricia Arquette
Libérer: 2024-11-20 13:39:22
original
633 Les gens l'ont consulté

How Can I Simulate Function Pointers in Java Using Anonymous Inner Classes or Lambda Expressions?

Interfaces fonctionnelles comme pointeurs de fonction en Java

En Java, où les pointeurs de fonction ne sont pas disponibles, les classes internes anonymes ou les expressions lambda constituent des alternatives appropriées .

Classes intérieures anonymes

Imaginez vous avez besoin de méthodes qui effectuent des actions similaires mais varient légèrement sur une seule ligne de calcul. Pour implémenter cela à l'aide d'une classe interne anonyme :

  1. Définissez une interface contenant la fonction que vous souhaitez encapsuler.
interface StringFunction {
    int func(String param);
}
Copier après la connexion
  1. Créez une méthode qui accepte un instance de votre interface en tant que paramètre.
public void takingMethod(StringFunction sf) {
    int i = sf.func("my string");
    // Operations...
}
Copier après la connexion
  1. Invoquez la méthode à l'aide d'un nom anonyme classe interne :
ref.takingMethod(new StringFunction() {
    public int func(String param) {
        // Implementation...
    }
});
Copier après la connexion

Expressions lambda (Java 8)

Syntaxiquement plus simple, vous pouvez utiliser des expressions lambda pour obtenir le même résultat :

ref.takingMethod(param -> {
    // Implementation...
});
Copier après la connexion

En utilisant des classes internes anonymes ou des expressions lambda, vous pouvez créer des pointeurs de fonction en Java, améliorant ainsi le code réutilisabilité et flexibilité.

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