我正在尝试向“房间”数据库添加一个“图片”字段,其中包含一个名为MyPicture的自定义对象,该对象具有以下属性。
private String id;
private User user; //Custom object
private Urls urls; //Custom object
类型转换器仅接收一个参数。因此,我不知道如何转换此类,因此我可以将其添加到数据库中,因为此类的构造函数需要三个参数。
我还为Urls和User类创建了类型转换器。那是对的吗?
public class MyPictureTypeConverter {
@TypeConverter
public static MyPicture toMyPicture
(String id, Urls urls, User user) {
return id == null ? null : new
MyPicture(id, urls, user);
}
@TypeConverter
public static String toString(MyPicture myPicture) {
return myPicture == null ? null : myPicture.getId();
}
}
这是我想到的主意。但这是不对的,因为在编译时我得到了这个
错误:类型转换器必须接收1个参数。
最佳答案
我认为这应该使用多个具有关系的表。
话虽如此,您的TypeConverter
对将如下所示:
public class MyPictureTypeConverter {
@TypeConverter
public static MyPicture toMyPicture(String stringified) {
return MyPicture.createFromString(stringified);
}
@TypeConverter
public static String toString(MyPicture myPicture) {
return myPicture.stringify();
}
}
在
MyPicture
上,您将实现:将
stringify()
转换为MyPicture
表示形式的String
方法,例如JSON一个
createFromString()
static
方法,该方法获取上一个stringify()
调用的结果,对其进行解析,并使用该数据创建一个MyPicture
实现。