Jackson - Utilisation de génériques pour la désérialisation
Dans le domaine du traitement des données, la désérialisation joue un rôle crucial dans la conversion des données sérialisées en objets. Jackson, une bibliothèque Java populaire, offre un support robuste pour la désérialisation, y compris la possibilité de gérer des classes génériques.
Désérialisation de classe générique
Lorsqu'il s'agit de classes génériques telles que Data< T>, où T représente un paramètre de type, la désérialisation nécessite de spécifier l'argument de type réel. L'approche traditionnelle implique l'utilisation du type Data.class, mais celle-ci ne parvient pas à capturer les informations génériques.
Solution TypeReference
Jackson fournit une solution via sa classe TypeReference. En créant un objet TypeReference et en spécifiant le type générique, vous pouvez informer Jackson du type attendu.
Exemple de code
Supposons que nous ayons un objet Data
class Data<T> { int found; Class<T> hits } public static void main(String[] args) { String jsonString = "..."; ObjectMapper mapper = new ObjectMapper(); Data<String> deserializedData = mapper.readValue(jsonString, new TypeReference<Data<String>>() { }); }
Explication
Dans cet exemple, nous créons un TypeReference pour Data< Chaîne> et transmettez-le comme deuxième argument à la méthode readValue. Cela demande à Jackson d'attendre un objet Data avec String comme argument de type générique.
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!