Classes implementing android.os.Parcelable must also have a non-null static field called CREATOR of a type that implements Parcelable.Creator.

Classes which don't follow this spec will compile fine but might not work in Android runtime. Depending on platform, one will observe following crash at runtime : android.os.BadParcelableException: Parcelable protocol requires a Parcelable.Creator object called CREATOR

A typical example of correct implementation:

 public class MyParcelable implements Parcelable {
     private int data;

     public int describeContents() {
         return 0;
     }

     public void writeToParcel(Parcel out, int flags) {
         out.writeInt(data);
     }

     public static final Parcelable.Creator<MyParcelable> CREATOR
             = new Parcelable.Creator<MyParcelable>() {
         public MyParcelable createFromParcel(Parcel in) {
             return new MyParcelable(in);
         }

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

     private MyParcelable(Parcel in) {
         data = in.readInt();
     }
 }