Rumah >Java >javaTutorial >Bagaimanakah Jackson Boleh Digunakan untuk Menyelesaikan Pemadaman Jenis Semasa Penyahserialisasian Jenis Generik?
Dalam senario kompleks anda, anda cuba menyahsiri data JSON menjadi kaedah generik yang mengharapkan MyRequest< ;T> taip. Walau bagaimanapun, Jackson menghadapi masalah disebabkan pemadaman jenis Java, di mana jenis T generik tidak dikekalkan pada masa jalan. Akibatnya, Jackson merawat MyRequest
Untuk menyelesaikan isu ini dan menentukan jenis yang dijangka akan dikembalikan sebagai T, anda perlu memberikan Jackson dengan eksplisit taip maklumat. Ini boleh dicapai dengan membina objek JavaType menggunakan kaedah getTypeFactory() dan constructCollectionType():
<code class="java">JavaType type = mapper.getTypeFactory() .constructCollectionType(List.class, Foo.class);</code>
Ganti List.class dengan jenis senarai yang anda harapkan untuk deserialisasi (cth., List
Setelah anda mempunyai objek JavaType, anda boleh menggunakannya untuk menyahsiri data JSON ke dalam jenis generik yang dijangkakan:
<code class="java">List<Foo> list = mapper.readValue(new File("input.json"), type);</code>
Dengan memberikan Jackson maklumat jenis eksplisit ini, ia akan menyahsiri MyRequest
Atas ialah kandungan terperinci Bagaimanakah Jackson Boleh Digunakan untuk Menyelesaikan Pemadaman Jenis Semasa Penyahserialisasian Jenis Generik?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!