我有一个ArrayList deserializedArray,我通过使用GSON对JSON进行反序列化来获得。我有自己的名为Post的课程。当我尝试这样做时
ArrayList<Post> posts = (ArrayList<Post>) deserializedArray;
它在可转换类型中抛出异常。但是当我这样做时
Post P = (Post) deserializedArray.get(0);
这很好用。我试图理解为什么第一个不起作用,即使第二个案例有效?
编辑:我已经指出了解决方案。但我真正想知道的是Java的内部工作原理以及为什么对列表有特殊限制?
答案 0 :(得分:2)
执行您要做的事情的公认方法是使用TypeToken的Gson概念。通过使用TypeToken,你可以根本不需要施放(Gson会为你做这个)。
至于理解您遇到特定错误的原因,请查看this question。