Heim > Java > javaLernprogramm > Wie verwende ich Gson TypeToken mit dynamischen ArrayList-Elementtypen zur Laufzeit?

Wie verwende ich Gson TypeToken mit dynamischen ArrayList-Elementtypen zur Laufzeit?

Patricia Arquette
Freigeben: 2024-12-05 17:16:11
Original
351 Leute haben es durchsucht

How to Use Gson TypeToken with Dynamic ArrayList Item Types at Runtime?

Gson TypeToken mit dynamischem ArrayList-Elementtyp zur Laufzeit

Bei der Arbeit mit JSON ist es üblich, JSON-Daten mithilfe von Gson in typisierte Objekte zu konvertieren. Es kann jedoch vorkommen, dass Sie auf ein Szenario stoßen, in dem der Typ des ArrayList-Elements, das Sie analysieren müssen, zur Laufzeit mithilfe von Reflektion dynamisch bestimmt wird. In solchen Fällen kann der herkömmliche TypeToken-Ansatz unzureichend sein.

Betrachten Sie beispielsweise diesen Code:

Type typeOfObjectsList = new TypeToken<ArrayList<myClass>>() {}.getType();
List<myClass> objectsList = new Gson().fromJson(json, typeOfObjectsList);
Nach dem Login kopieren

Dieser Code konvertiert eine JSON-Zeichenfolge in eine Liste von myClass-Objekten. Was aber, wenn der Elementtyp der ArrayList dynamisch bestimmt werden soll?

Um dies zu erreichen, können Sie eine neue Funktion nutzen, die in Gson Version 2.8.0 eingeführt wurde: TypeToken.getParameterized. Mit dieser Methode können Sie ein TypeToken mit einem angegebenen parametrisierten Typ erstellen.

So können Sie es verwenden:

private <T> Type setModelAndGetCorrespondingList2(Class<T> type) {
    Type typeOfObjectsListNew = TypeToken.getParameterized(ArrayList.class, type).getType();
    return typeOfObjectsListNew;
}
Nach dem Login kopieren

Durch Übergabe der ArrayList-Klasse und des Klassentyps des dynamischen Elementtyps als Argumente Mit TypeToken.getParameterized erstellen Sie ein TypeToken, das eine ArrayList mit dem gewünschten Elementtyp darstellt. Dieses TypeToken kann dann als Parameter für Gson.fromJson verwendet werden, um die JSON-Daten korrekt in den gewünschten Listentyp zu analysieren.

Das obige ist der detaillierte Inhalt vonWie verwende ich Gson TypeToken mit dynamischen ArrayList-Elementtypen zur Laufzeit?. 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