反序列化通用集合的方法:
import java.lang.reflect.Type;import com.google.gson.reflect.TypeToken;...Type listType = new TypeToken<ArrayList<YourClass>>(){}.getType();List<YourClass> yourClassList = new Gson().fromJson(jsonArray, listType);由于评论中的几个人都提到了它,因此这里是有关如何使用
TypeToken该类的说明。该构造
new TypeToken<...>(){}.getType()将编译时类型(在<和之间
>)捕获到运行时
java.lang.reflect.Type对象中。与
Class只能表示原始(擦除)类型的
Type对象不同,该对象可以表示Java语言中的任何类型,包括通用类型的参数化实例化。
在
TypeToken类本身不具有公共构造,因为你不应该直接构造它。相反,您总是构造一个匿名子类(因此
{},,这是该表达式的必要部分)。由于类型擦除,
TypeToken该类只能捕获在编译时完全已知的类型。(也就是说,您不能
new TypeToken<List<T>>(){}.getType()对类型参数进行操作T。)
有关更多信息,请参见类的文档
TypeToken。



