我正在尝试使用 writeParcelableArray将实现Parcelable的对象数组写入Parcel。
我试图写的对象被定义(如你所料)为:
public class Arrival implements Parcelable {
/* All the right stuff in here... this class compiles and acts fine. */
}
我正在尝试将它们写入一个“包裹”:
@Override
public void writeToParcel(Parcel dest, int flags) {
Arrival[] a;
/* some stuff to populate "a" */
dest.writeParcelableArray(a, 0);
}
当 Eclipse 尝试编译它时,我得到了错误:
绑定不匹配:Parcel 类型的泛型方法 writeParcelableArray(T[], int) 不适用于参数 (Arrival[], int)。推断类型 Arrival 不是有界参数 < T extends Parcelable > 的有效替代品
我完全不明白这个错误信息。Parcelable
是一个接口(不是一个类),所以你不能扩展它。有人有想法么?
更新:ArrayList
将of Parcelable
s 放入 an时,我遇到了基本相同的问题Intent
:
Intent i = new Intent();
i.putParcelableArrayListExtra("locations", (ArrayList<Location>) locations);
产量:
Intent 类型中的 putParcelableArrayListExtra(String, ArrayList< ? extends Parcelable >) 方法不适用于参数 (String, ArrayList< Location >)
这可能是因为Location
是我在上面工作的类(包装了Arrival
s),但我不这么认为。