【问题标题】:how to convert integer to string using typeconverters in room android?如何使用房间 android 中的类型转换器将整数转换为字符串?
【发布时间】:2019-05-11 19:52:58
【问题描述】:

我正在开发一个聊天应用程序,但我收到以下错误:找不到该字段的 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) 
      }

【问题讨论】:

  • 问题不完整。你能描述得更详细些吗?
  • 我收到错误我已经发布了我的问题
  • 你应该在提问时也发布错误。
  • 请查看我的帖子

标签: android-room typeconverter


【解决方案1】:

要创建@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 注释下方

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多