保存数组列表<类>作为房间内的字符串

我正在使用喷气背包中的房间库,我想将我的数组列表保存在房间数据库中。


我正在使用类型转换器将数组列表转换为字符串,但仍然收到错误。


Error Message : Cannot figure out how to save this field into database. You can consider adding a type converter for it.

这是我的类型转换器。


public class TypeConverterUtils {

    @TypeConverter

    public static String fromArray(ArrayList<CropData> arrayList) {

        return GsonUtils.toGson(arrayList);

    }

}

这是我的数据库类。


@TypeConverters({TypeConverterUtils.class})

public abstract class CheruvuDatabase extends RoomDatabase {


    private static final String DATABASE_NAME = "Cheruvu.db";


    public abstract OtpDAO otpDAO();


    public abstract FarmerInfoDAO farmerInfoDAO();


    // For Singleton instantiation

    private static final Object LOCK = new Object();

    private static volatile CheruvuDatabase sInstance;


    public static CheruvuDatabase getInstance(Context context) {

        if (sInstance == null) {

            synchronized (LOCK) {

                if (sInstance == null) {

                    context.getApplicationContext().deleteDatabase(CheruvuDatabase.DATABASE_NAME);

                    sInstance = Room.databaseBuilder(context.getApplicationContext(), CheruvuDatabase.class, CheruvuDatabase.DATABASE_NAME)

                            .fallbackToDestructiveMigration()

                            .allowMainThreadQueries()

                            .build();

                }

            }

        }

        return sInstance;

    }

}

我想存储这个数组列表。


私有数组列表裁剪数据 = 新的数组列表<>();


这是我的作物数据类。


public class CropData {


    private String cropName;

    private Crop crop;

    private Float cropAcres;

    private Float cropYield;

    private Float cropPrice;


    public String getCropName() {

        return cropName;

    }


    public void setCropName(String cropName) {

        this.cropName = cropName;

    }


    public Crop getCrop() {

        return crop;

    }



慕工程0101907
浏览 76回答 1
1回答

守候你守候我

您是否在数组列表变量上添加了@Embedded?因为您将需要嵌入要转换的类。例如ArrayList<CropData> cropData;和作物数据.class是不同的。所以只需添加@Embedded&nbsp;ArrayList<CropData> cropData;你的问题就会得到解决。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java