Android 可包裹接口 public static final Parcelable.Creator=新的Parcelable.Creator()

Android 可包裹接口 public static final Parcelable.Creator=新的Parcelable.Creator(),android,parcelable,Android,Parcelable,我从一个网站上获取了上面的代码。它说我们必须创建一个CREATOR常量才能使包裹工作。但我认为Parcelable是一个接口,我们不能从接口创建对象。所以我对代码感到困惑,因为它看起来像是创建对象的构造函数 谢谢恐怕您引用的代码不完整。需要创建者允许框架在反序列化时创建对象,请注意,它是一个通用接口,并且您提供的类型参数为“MyParcelable”,因此其“createFromParcel”方法的返回类型为“MyParcelable”。因此,您可以在其中创建“MyParcelable”实例。像

我从一个网站上获取了上面的代码。它说我们必须创建一个
CREATOR
常量才能使包裹工作。但我认为Parcelable是一个接口,我们不能从接口创建对象。所以我对代码感到困惑,因为它看起来像是创建对象的构造函数


谢谢

恐怕您引用的代码不完整。需要创建者允许框架在反序列化时创建对象,请注意,它是一个通用接口,并且您提供的类型参数为“MyParcelable”,因此其“createFromParcel”方法的返回类型为“MyParcelable”。因此,您可以在其中创建“MyParcelable”实例。像这样:

public static final Parcelable.Creator<MyPacelable> CREATOR = new Parcelable.Creator<MyParcelable>()
public static final Parcelable.Creator=新的Parcelable.Creator(){
公共MyParcelable createFromParcel(中的地块){
返回新的MyParcelable(在中);
}
公共MyParcelable[]新数组(整数大小){
返回新的MyParcelable[大小];
}
};
public static final Parcelable.Creator<MyPacelable> CREATOR = new Parcelable.Creator<MyParcelable>() {
    public MyParcelable createFromParcel(Parcel in) {
        return new MyParcelable(in);
    }

    public MyParcelable[] newArray(int size) {
        return new MyParcelable[size];
    }
};