Avantages des références pour les méthodes
Concision : Les références aux méthodes sont plus concises que les lambdas.
Exemple : incrémenter la valeur dans une carte à l'aide de la fusion :
Lambda : (compte, incr) -> compter + augmenter
Référence pour la méthode : Integer::sum
Réduction du passe-partout
Suppression des paramètres inutiles : Les paramètres tels que count et incr sont éliminés.
Exemple :
map.merge(key, 1, Integer::sum);
Copier après la connexion
Utilisation efficace des références pour les méthodes
-
Documentation utile dans Lambdas : Dans certains cas, les noms de paramètres dans lambdas peuvent fournir une documentation utile.
-
Conversion de Lambdas en méthodes : Si un lambda est trop complexe, extrayez le code dans une méthode distincte et utilisez la référence à cette méthode.
IDE et références pour les méthodes
-
Suggestions IDE : Les IDE suggèrent souvent de remplacer les lambdas par des références à des méthodes.
-
Acceptation des suggestions : En général, acceptez les suggestions, mais évaluez au cas par cas.
Exceptions et considérations
-
Lambdas plus concis : Parfois, les lambdas sont plus concis que les références de méthodes.
- Exemple avec Classe :
-
Référence pour la méthode : GoshThisClassNameIsHumongous::action
-
Lambda : () -> action()
-
Fonction d'identité : Function.identity() vs. x -> x
Types de références pour les méthodes
-
Statique : Integer::parseInt (lambda : str -> Integer.parseInt(str))
-
Limité : Instant.now()::isAfter (lambda : t -> Instant.now().isAfter(t))
-
Illimité : String::toLowerCase (lambda : str -> str.toLowerCase())
-
Constructeur de classe : TreeMap::new (lambda: () -> new TreeMap)
-
Constructeur de tableau : int[]::new (lambda : len -> new int[len])
Conclusion
Préférence pour les références de méthode : Utilisez les références de méthode lorsqu'elles sont plus courtes et plus claires que les lambdas.
Utilisation des Lambdas : Préférez les lambdas s'ils sont plus concis ou fournissent une meilleure documentation.
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!