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!