Jackson – Verwendung von Generika zur Deserialisierung
Im Bereich der Datenverarbeitung spielt Deserialisierung eine entscheidende Rolle bei der Umwandlung serialisierter Daten in Objekte. Jackson, eine beliebte Java-Bibliothek, bietet robuste Unterstützung für die Deserialisierung, einschließlich der Möglichkeit, generische Klassen zu verarbeiten.
Deserialisierung generischer Klassen
Beim Umgang mit generischen Klassen wie Data< T>, wobei T einen Typparameter darstellt, erfordert die Deserialisierung die Angabe des tatsächlichen Typarguments. Der traditionelle Ansatz beinhaltet die Verwendung des Data.class-Typs, aber dadurch können die allgemeinen Informationen nicht erfasst werden.
TypeReference-Lösung
Jackson bietet eine Lösung über seine TypeReference-Klasse. Indem Sie ein TypeReference-Objekt erstellen und den generischen Typ angeben, können Sie Jackson über den erwarteten Typ informieren.
Codebeispiel
Angenommen, wir haben ein 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>>() { }); }
Erläuterung
In diesem Beispiel erstellen wir eine TypeReference für Data< Zeichenfolge> und übergeben Sie es als zweites Argument an die readValue-Methode. Dies weist Jackson an, ein Datenobjekt mit String als generischem Typargument zu erwarten.
Das obige ist der detaillierte Inhalt vonWie kann Jacksons TypeReference Probleme bei der Deserialisierung generischer Klassen lösen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!