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); }
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 ... }
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 } });
Alternativement, Java 8 introduit des expressions lambda, qui fournissent une syntaxe plus concise pour cela objectif :
ref.takingMethod(param -> bodyExpression);
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!