ParcelablePlease
ParcelablePlease copied to clipboard
Error in generated code on Parcelable with generics
trafficstars
Using ParcelablePlease on a class with a Parcelable field with a generic parameter there is an error in generated code. For example using ObservableParcelable class of data binding framework:
ObservableParcelable<App> app = new ObservableParcelable<>();
the generated code has a compilation error:
target.app = parcel.readParcelable(android.databinding.ObservableParcelable<App>.class.getClassLoader());
It can be fixed easily using a custom bagger:
public class ObservableParcelableBagger implements ParcelBagger<ObservableParcelable> {
@Override public void write(ObservableParcelable value, Parcel out, int flags) {
out.writeParcelable(value, flags);
}
@Override public ObservableParcelable read(Parcel in) {
return in.readParcelable(ObservableParcelable.class.getClassLoader());
}
}
Thanks for this great framework!
I see ...
The compilation error is the generic type <App> in ObservableParcelable<App>.class, right?
Yes, to fix it you just need to remove the generic parameter <App>
Thanks for reporting!