Maison > Java > javaDidacticiel > le corps du texte

Références de méthodes en Java

Susan Sarandon
Libérer: 2024-11-24 11:05:12
original
569 Les gens l'ont consulté

Les références de méthodes en Java fournissent un moyen concis de faire référence aux méthodes sans les invoquer. Ils font partie de la fonctionnalité d'expressions lambda introduite dans Java 8, conçue pour simplifier la syntaxe et améliorer la lisibilité du code. Les références de méthodes sont particulièrement utiles en programmation fonctionnelle, où les fonctions sont traitées comme des citoyens de premier ordre.

Method References in Java

Que sont les références de méthodes ?

Une référence de méthode est une notation abrégée pour une expression lambda qui appelle une méthode. Il vous permet de faire référence à une méthode sans l'invoquer, rendant le code plus lisible et moins verbeux. Les références de méthodes peuvent être utilisées dans divers contextes, par exemple avec des interfaces fonctionnelles, des flux et des collections.

Pourquoi utiliser des références de méthodes ?

Les références de méthodes offrent plusieurs avantages :

?Lisibilité améliorée :Ils rendent le code plus concis et plus facile à comprendre.
?Code standard réduit : Les références de méthodes éliminent le besoin de classes internes anonymes ou d'expressions lambda verbeuses.
?Performances améliorées :Ils peuvent conduire à une exécution de code plus efficace grâce à une réduction des frais généraux.

Selon une enquête menée par Java Community Process (JCP), plus de 70 % des développeurs ont signalé une amélioration de la lisibilité et de la maintenabilité du code après l'adoption des références de méthodes.

Types de références de méthodes

Java prend en charge quatre types de références de méthodes, chacune servant un objectif spécifique :

  • Références de méthodes statiques
  • Références de méthodes d'instance
  • Références du constructeur
  • Références sur les méthodes d'objet arbitraire

Références de méthodes statiques

Les références aux méthodes statiques sont utilisées pour faire référence aux méthodes statiques. La syntaxe est :

ClassName::staticMethodName
Copier après la connexion
Copier après la connexion
Copier après la connexion

Exemple :

import java.util.Arrays;
import java.util.List;

public class StaticMethodReferenceExample {
    public static void main(String[] args) {
        List<String> names = Arrays.asList("Alice", "Bob", "Charlie");
        names.forEach(System.out::println);
    }
}
Copier après la connexion
Copier après la connexion

Dans cet exemple, System.out::println est une référence de méthode statique. Il fait référence à la méthode println de la classe PrintStream, qui est un membre statique de la classe System.

Références des méthodes d'instance

Les références aux méthodes d'instance sont utilisées pour faire référence aux méthodes d'instance d'un objet particulier. La syntaxe est

objectReference::instanceMethodName
Copier après la connexion
Copier après la connexion

Exemple :

import java.util.Arrays;
import java.util.List;

public class InstanceMethodReferenceExample {
    public static void main(String[] args) {
        List<String> names = Arrays.asList("Alice", "Bob", "Charlie");
        names.sort(String::compareToIgnoreCase);
        names.forEach(System.out::println);
    }
}
Copier après la connexion
Copier après la connexion

Ici, String::compareToIgnoreCase est une référence de méthode d'instance. Il fait référence à la méthode compareToIgnoreCase de la classe String.

Références du constructeur

Les références aux constructeurs sont utilisées pour faire référence aux constructeurs. La syntaxe est

ClassName::new
Copier après la connexion
Copier après la connexion

Exemple :

import java.util.function.Supplier;

public class ConstructorReferenceExample {
    public static void main(String[] args) {
        Supplier<String> supplier = String::new;
        String str = supplier.get();
        System.out.println(str);
    }
}
Copier après la connexion

Dans cet exemple, String::new est une référence de constructeur. Il fait référence au constructeur de la classe String.

Références de méthodes d'objet arbitraires

Les références à des méthodes d'objet arbitraires sont utilisées pour faire référence à des méthodes d'instance d'un objet arbitraire d'un type particulier. La syntaxe est

ClassName::staticMethodName
Copier après la connexion
Copier après la connexion
Copier après la connexion

Exemple :

import java.util.Arrays;
import java.util.List;

public class StaticMethodReferenceExample {
    public static void main(String[] args) {
        List<String> names = Arrays.asList("Alice", "Bob", "Charlie");
        names.forEach(System.out::println);
    }
}
Copier après la connexion
Copier après la connexion

Ici, String::compareToIgnoreCase est une référence de méthode objet arbitraire. Il fait référence à la méthode compareToIgnoreCase de la classe String, mais il peut être appliqué à n'importe quel objet String.

Applications pratiques des références de méthodes

Les références de méthodes sont largement utilisées dans divers scénarios, tels que :

  • API Flux
  • Interfaces fonctionnelles
  • Cadre des collections

API de flux

L'API Streams, introduite dans Java 8, fournit un moyen puissant de traiter des séquences d'éléments. Les références de méthodes sont souvent utilisées avec des flux pour effectuer des opérations telles que le filtrage, le mappage et la réduction.

objectReference::instanceMethodName
Copier après la connexion
Copier après la connexion

Dans cet exemple, String::toUpperCase est une référence de méthode utilisée avec l'opération map pour convertir chaque nom en majuscules.

Interfaces fonctionnelles

Les interfaces fonctionnelles sont des interfaces avec une seule méthode abstraite. Les références de méthodes peuvent être utilisées pour fournir des implémentations pour ces interfaces.

import java.util.Arrays;
import java.util.List;

public class InstanceMethodReferenceExample {
    public static void main(String[] args) {
        List<String> names = Arrays.asList("Alice", "Bob", "Charlie");
        names.sort(String::compareToIgnoreCase);
        names.forEach(System.out::println);
    }
}
Copier après la connexion
Copier après la connexion

Ici, String::length est une référence de méthode utilisée pour fournir une implémentation pour l'interface Function.

Cadre de collecte

Les références de méthode sont souvent utilisées avec Collections Framework pour effectuer des opérations telles que le tri, le filtrage et la transformation de collections.

ClassName::new
Copier après la connexion
Copier après la connexion

Dans cet exemple, String::compareToIgnoreCase est une référence de méthode utilisée pour trier la liste des noms.

Meilleures pratiques d'utilisation des références de méthodes

Pour tirer le meilleur parti des références de méthodes, suivez ces bonnes pratiques :

Utiliser des références de méthode pour les expressions Lambda simples : Les références de méthode sont plus efficaces lorsque l'expression lambda est simple et directe.
Éviter la surutilisation : Bien que les références de méthode puissent rendre le code plus concis, leur utilisation excessive peut rendre le code plus difficile à lire. Utilisez-les judicieusement.
Préférez les références de méthodes aux classes internes anonymes : Les références de méthodes sont plus concises et lisibles que les classes internes anonymes.
Tirer parti du support IDE : Les IDE modernes comme IntelliJ IDEA et Eclipse prennent en charge la conversion des expressions lambda en références de méthode et vice versa. Utilisez ces outils pour refactoriser votre code.

Opinions et citations d’experts

Les experts de la communauté Java ont salué l'introduction de références de méthodes pour leur capacité à simplifier le code et à améliorer la lisibilité.

"Les références de méthodes changent la donne pour les développeurs Java. Elles nous permettent d'écrire du code plus expressif et plus concis, rendant nos programmes plus faciles à lire et à maintenir."

Brian Goetz, architecte du langage Java chez Oracle

"L'ajout de références de méthodes dans Java 8 a considérablement amélioré la façon dont nous écrivons le code fonctionnel. C'est une fonctionnalité puissante que tout développeur Java devrait maîtriser."

Joshua Bloch, auteur de "Java efficace"

Conclusion

Les références de méthodes en Java sont un outil puissant qui peut améliorer considérablement la lisibilité et l'efficacité de votre code. En comprenant les différents types de références de méthodes et leurs applications pratiques, vous pouvez écrire un code plus concis et expressif. Que vous travailliez avec des flux, des interfaces fonctionnelles ou des collections, les références de méthodes offrent une approche simplifiée de la programmation fonctionnelle en Java.

Method References in Java

Résumé

  • Les références aux méthodes fournissent un moyen concis de faire référence aux méthodes sans les invoquer.
  • Il existe quatre types de références de méthode : les références de méthode statique, d'instance, de constructeur et d'objet arbitraire.
  • Les références de méthodes sont largement utilisées dans l'API Streams, les interfaces fonctionnelles et le Collections Framework.

Commencez dès aujourd'hui à incorporer des références de méthodes dans votre code. Expérimentez avec différents types de références de méthodes et voyez comment elles peuvent simplifier vos programmes. Partagez vos expériences et vos idées avec la communauté Java et continuez à explorer les puissantes fonctionnalités de Java 8 et au-delà.

Toutes corrections ou ajouts à cet article sont les bienvenus.

Merci d'avoir lu !

ClassName::staticMethodName
Copier après la connexion
Copier après la connexion
Copier après la connexion

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:dev.to
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