Heim > Java > javaLernprogramm > Wie kann Jacksons TypeReference Probleme bei der Deserialisierung generischer Klassen lösen?

Wie kann Jacksons TypeReference Probleme bei der Deserialisierung generischer Klassen lösen?

Barbara Streisand
Freigeben: 2024-12-06 14:09:16
Original
260 Leute haben es durchsucht

How Can Jackson's TypeReference Solve Generic Class Deserialization Issues?

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 Klasse und eine JSON-Zeichenfolge, die in eine Instanz dieser Klasse deserialisiert werden muss:

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>>() { });
}
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage