Rumah > Java > javaTutorial > Bagaimanakah saya boleh menggunakan Gson's TypeToken dengan Jenis Item Dynamic ArrayList?

Bagaimanakah saya boleh menggunakan Gson's TypeToken dengan Jenis Item Dynamic ArrayList?

Patricia Arquette
Lepaskan: 2024-12-04 05:47:09
asal
546 orang telah melayarinya

How Can I Use Gson's TypeToken with Dynamic ArrayList Item Types?

Mengatasi Had Gson TypeToken dengan Jenis Item Dynamic ArrayList

Gson's TypeToken ialah alat mudah untuk bekerja dengan jenis data JSON tertentu. Walau bagaimanapun, ia menghadapi had apabila berurusan dengan ArrayLists yang jenis itemnya ditetapkan secara dinamik semasa masa jalan. Artikel ini menyelidiki penyelesaian untuk cabaran ini, membolehkan penciptaan ArrayLists dengan pelbagai jenis item melalui refleksi.

Pada mulanya, percubaan dibuat untuk mencapai ini menggunakan pelaksanaan TypeToken tersuai, tetapi ia terbukti tidak berjaya, sebagai pengecualian "java.sql.SQLException: Gagal menukar kepada perwakilan dalaman" muncul semasa JSON penghuraian.

Penyelesaian terletak pada versi Gson yang kemudian, di mana TypeToken menyediakan kaedah #getParameterized. Kaedah ini membolehkan penciptaan TypeTokens dengan argumen jenis tersuai. Dalam senario ini, matlamatnya ialah untuk mencipta TypeToken yang mewakili ArrayList dengan jenis item tertentu yang ditentukan secara dinamik, 'myClass'. Coretan kod yang dikemas kini mengambil bentuk berikut:

TypeToken.getParameterized(ArrayList.class, myClass).getType()
Salin selepas log masuk

Pendekatan baharu ini berkesan menjana TypeToken yang sepadan dengan struktur ArrayList dinamik yang dikehendaki, menyelesaikan had sebelumnya dan membolehkan penukaran lancar data JSON ke dalam ArrayList dengan jenis item yang ditetapkan secara dinamik.

Atas ialah kandungan terperinci Bagaimanakah saya boleh menggunakan Gson's TypeToken dengan Jenis Item Dynamic ArrayList?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan