Nếu một lớp Java là một kiểu chung và chúng tôi đang sử dụng nó với thư viện Gson cho JSON tuần tự hóa và deserialization . Thư viện Gson cung cấp một lớp có tên com.google.gson.reflect.TypeToken để lưu trữ các loại chung bằng cách tạo Gson TypeToken lớp và vượt qua loại lớp. Sử dụng kiểu này, Gson có thể biết lớp được truyền trong lớp chung.
Cú pháp
public class TypeToken<T> extends java.lang.Object
Ví dụ
import java.lang.reflect.Type; import java.util.*; import com.google.gson.*; import com.google.gson.reflect.*; public class GenericTypesJSONTest { public static void main(String[] args) { Gson gson = new GsonBuilder().setPrettyPrinting().create(); List<String> list = Arrays.asList("INDIA", "AUSTRALIA", "ENGLAND", "SOUTH AFRICA"); String jsonStr = gson.toJson(list); System.out.println(jsonStr); Type listType = new TypeToken<List<String>>() {}.getType(); list = gson.fromJson(jsonStr, listType); System.out.println(list); } }
Đầu ra
[ "INDIA", "AUSTRALIA", "ENGLAND", "SOUTH AFRICA" ] [INDIA, AUSTRALIA, ENGLAND, SOUTH AFRICA]