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
La syntaxe
Map<String, Class<? extends Serializable>> expected = null;
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.
Dans l'exemple fourni :
Map<String, Class<java.util.Date>> result = null; assertThat(result, is(expected));
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
Changement de la signature de la méthode assertThat en
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!