writeParcelableArray抛出ClassCastException Android

时间:2011-12-11 20:18:54

标签: android parcelable

我遇到了将一组对象写入parcel的问题。我有一个存储在MyRegistry中的MyObject(也就是实现Parcelable的任何对象)的集合,它也必须是Pacelable:

public class MyObject implements Parcelable {...}

public class MyRegistry implements Parcelable {

  private List<Parcelable> mRegistry = new ArrayList<Parcelable>();

  ...

  public void writeToParcel(Parcel dest, int flags)
  {
    dest.writeParcelableArray((Parcelable[])mRegistry.toArray(), flags);
  }
}

但是,调用writeParcelableArray()时会抛出ClassCastException。那么编写Parcelable的MyObject有什么问题呢?在文档中没有遇到任何关于此的限制......

提前谢谢!

1 个答案:

答案 0 :(得分:2)

我认为这是因为List.toArray()返回一个Object []数组,然后您尝试进行转换。您应该使用List.toArray(T[])