Maison > Java > javaDidacticiel > Quand et pourquoi utiliser `` dans les génériques Java ?

Quand et pourquoi utiliser `` dans les génériques Java ?

Barbara Streisand
Libérer: 2024-11-27 16:00:14
original
997 Les gens l'ont consulté

When and Why Use `` in Java Generics?

Génériques en Java : quand et comment utiliser

En Java, les génériques permettent aux développeurs d'écrire du code qui fonctionne sur différents types de données sans avoir à pour créer plusieurs versions du même code. Lorsque vous utilisez des génériques, il est crucial de comprendre la différence entre l'utilisation de et .

Quand utiliser

La syntaxe indique qu'un paramètre de type générique peut être n'importe quel sous-type du type spécifié. Par exemple, dans le code ci-dessous :

Map<String, Class<? extends Serializable>> expected = null;
Copier après la connexion

La carte attendue peut contenir des objets Class qui représentent n'importe quelle classe qui implémente Seriallessly ou l'une de ses sous-classes.

Pourquoi Causer des erreurs de compilation ?

Dans l'exemple fourni :

Map<String, Class<java.util.Date>> result = null;
assertThat(result, is(expected));
Copier après la connexion

La carte de résultat précise qu'elle ne peut contenir que des objets de classe Date. Lors de la vérification du type de résultat, la méthode assertThat attend un Matcher qui correspond au type de résultat. Cependant, le type de carte attendu, qui est Matcher, ne correspond pas au type attendu, Map>.

Inconvénients du passage à

Changement de la signature de la méthode assertThat en peut avoir des conséquences inattendues, notamment :

  • Rupture de compatibilité avec le code existant qui utilise Matcher directement.
  • Permet potentiellement des correspondances non valides.

Générisation de la méthode assertThat

La génériqueisation de la méthode assertThat dans JUnit est conçue pour garantir qu'un Matcher compatible est fourni. Cependant, comme la classe Matcher ne nécessite pas de type générique, la génériqueisation peut sembler redondante. Cependant, il assure la sécurité du type en garantissant que le Matcher peut gérer le type réel du résultat testé.

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:php.cn
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