java–Parceler:无法找到类型为ForeignCollection的读写生成器

java–Parceler:无法找到类型为ForeignCollection的读写生成器,第1张

概述我尝试使用Parceler来使用ORMLite,但Parceler会收到错误:Error:(44,36)error:Parceler:Unabletofindread/writegeneratorfortypecom.j256.ormlite.dao.ForeignCollection<PassKeyItem>forCategoryItem.passKeyItems这是我的对象:CategoryItem.class@Parcel@Data

我尝试使用Parceler来使用Ormlite,但Parceler会收到错误:

Error:(44, 36) error: Parceler: Unable to find read/write generator for type com.j256.ormlite.dao.ForeignCollection<PassKeyItem> for categoryItem.passKeyItems

这是我的对象:

categoryItem.class

@Parcel@Databasetable(tablename = "categorIEs")public class categoryItem {     ...    @ForeignCollectionFIEld(columnname = FIELD_PASS_KEY_ITEMS)    ForeignCollection<PassKeyItem> passKeyItems;}

PassKeyItem.class

@Parcel@Databasetable(tablename = "passkey")public class PassKeyItem {...  @DatabaseFIEld(foreign = true, foreignautoRefresh = true, columnname = FIELD_category_ITEM_ID)    private categoryItem categoryItem;}

解决方法:

您需要提供转换器,因为Parceler不知道如何序列化ForeignCollection.

以下是文档中的示例:

@Parcelpublic class Item {    @ParcelPropertyConverter(ItemListParcelConverter.class)    public List<Item> itemList;}@Parcel public class SubItem1 extends Item {}@Parcel public class SubItem2 extends Item {}public class ItemListParcelConverter implements ParcelConverter<List<Item>> {    @OverrIDe    public voID toparcel(List<Item> input, Parcel parcel) {        if (input == null) {            parcel.writeInt(-1);        }        else {            parcel.writeInt(input.size());            for (Item item : input) {                parcel.writeParcelable(Parcels.wrap(item), 0);            }        }    }    @OverrIDe    public List<Item> fromParcel(Parcel parcel) {        int size = parcel.readInt();        if (size < 0) return null;        List<Item> items = new ArrayList<Item>();        for (int i = 0; i < size; ++i) {            items.add((Item) Parcels.unwrap(parcel.readParcelable(Item.class.getClassLoader())));        }        return items;    }}

更多信息,请访问https://github.com/johncarl81/parceler#custom-serialization

总结

以上是内存溢出为你收集整理的java – Parceler:无法找到类型为ForeignCollection的读/写生成器全部内容,希望文章能够帮你解决java – Parceler:无法找到类型为ForeignCollection的读/写生成器所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://www.outofmemory.cn/web/1115042.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存