Lors de l'utilisation de génériques Java, il peut y avoir des cas où vous aurez besoin de
Considérez l'extrait de code suivant :
Map<String, Class<? extends Serializable>> expected = null; Map<String, Class<java.util.Date>> result = null; assertThat(result, is(expected));
Ce code ne parvient pas à se compiler en raison d'une incompatibilité de type.
Modifier la signature de la méthode assertThat en :
public static <T> void assertThat(T result, Matcher<? extends T> matcher)
résout l'erreur de compilation. Cela permet à la méthode d'accepter un Matcher qui correspond au type de résultat, garantissant ainsi la sécurité du type.
Utilisation de Matcher étend T> ; ne présente aucun inconvénient majeur. Il garantit qu'un Matcher compatible est fourni, empêchant ainsi les exceptions d'exécution potentielles causées par des types incompatibles.
Les génériques de la méthode assertThat permettent de vérifier le type pour garantir que le Matcher fourni correspond au type de résultat. Bien que la classe Matcher ne nécessite pas de génériques, leur utilisation permet de renforcer la sécurité des types et d'éviter les erreurs potentielles.
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!