Hec*_*tor 7 android parcelable auto-value
我调查auto-value及其扩展,也就是auto-value-parcel和auto-value-parcel-adapter我的Android应用程序中.
我有这些模型类: -
@AutoValue
public abstract class Xenarchaeota implements Parcelable {
@ParcelAdapter(AmoebaTypeAdapter.class)
public abstract Set<Amoeba> amoebas();
public static Builder builder() {
return new AutoValue_Xenarchaeota.Builder();
}
@AutoValue.Builder
public abstract static class Builder {
public abstract Builder setAmoebas(Set<Amoeba> value);
public abstract Xenarchaeota build();
}
}
Run Code Online (Sandbox Code Playgroud)
和
@AutoValue
public abstract class Amoeba implements Parcelable {
public abstract String surname();
public static Builder builder() {
return new AutoValue_Amoeba.Builder();
}
@AutoValue.Builder
public abstract static class Builder {
public abstract Builder surname(final String value);
public abstract Amoeba build();
}
}
Run Code Online (Sandbox Code Playgroud)
我的类型适配器是我的问题出现的地方
class AmoebaTypeAdapter implements TypeAdapter<Set<Amoeba>> {
@Override
public Set<Amoeba> fromParcel(Parcel in) {
final ArrayList<Amoeba> arrayList = new ArrayList<>();
in.readTypedList(arrayList, Amoeba.CREATOR); // How to access the CREATOR?
return new TreeSet<>(arrayList);
}
@Override
public void toParcel(Set<Amoeba> value, Parcel dest) {
final ArrayList<Amoeba> arrayList = new ArrayList<>(value);
dest.writeTypedList(arrayList);
}
}
Run Code Online (Sandbox Code Playgroud)
我需要传递给readTypedArray的CREATOR在AutoValue_Amoeba中声明.
我的错误在哪里?误会auto-value-parcel?
AutoValue:Parcel 扩展无法处理集合,但如果将属性转换为 a,则List无需自定义适配器即可开箱即用。如果你想把它当作一个Set你可以这样做。请记住,您可能还想缓存Set.
@AutoValue
public abstract class Xenarchaeota implements Parcelable {
abstract List<Amoeba> amoebaList();
public Set<Amoeba> amoebas() {
return new TreeSet(amoebaList());
}
public static Builder builder() {
return new AutoValue_Xenarchaeota.Builder();
}
@AutoValue.Builder
public abstract static class Builder {
public abstract Builder setAmoebas(Set<Amoeba> value);
public abstract Xenarchaeota build();
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
162 次 |
| 最近记录: |