我正在开发聊天应用程序,但出现以下错误:找不到该字段的getter。 这就是为什么我想在Room中使用类型转换器将Integer转换为String的原因,但在User.java模型类下找不到任何示例
@Entity public class User implements IChatUser {
@PrimaryKey(autoGenerate = true)
private Integer id;
@ColumnInfo(name = "name")
private String name;
@Ignore
Bitmap icon;
public User() {
}
@Ignore
public User(String name, Bitmap icon) {
this.name = name;
this.icon = icon;
}
@Override
public Integer getId() {
return this.id;
}
@Override
public String getName() {
return this.name;
}
public void setId(Integer id) {
this.id = id;
}
public void setName(String name) {
this.name = name;
}
@Override
public Bitmap getIcon() {
return this.icon;
}
@Override
public void setIcon(Bitmap icon) {
this.icon = icon;
} }
在IchatUser.kt下面
interface IChatUser {
fun getId(): String
fun getName(): String?
fun getIcon(): Bitmap?
fun setIcon(bmp: Bitmap)
}
答案 0 :(得分:0)
要创建@TypeConverter
,请创建一个Java类并将其命名为IntConverter
public class IntConverter {
@TypeConverter
public static String toString(int number) {
return number == null ? null : Integer.toString(number);
}
@TypeConverter
public static int toInt(String str) {
return str == null ? null : Integer.parseInt(str);
}
}
现在,您需要数据库来了解此TypeConverter,因此请声明以下内容:
@TypeConverters(IntConverter.class)
就在Database类的@Database
批注下面