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); }
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 ... }
Vous pouvez appeler cette méthode comme ceci :
takingMethod(new StringFunction() { public int func(String param) { // body } });
En Java 8 et versions ultérieures, vous pouvez simplifiez ce code à l'aide d'expressions lambda :
takingMethod(param -> bodyExpression);
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!