public class Converters {
@TypeConverter
public static Date fromTimestamp(Long value) {
return value == null ? null : new Date(value);
}
@TypeConverter
public static Long dateToTimestamp(Date date) {
return date == null ? null : date.getTime();
}
}
@Database(entities = {User.class}, version = 1)
@TypeConverters({Converters.class})
public abstract class AppDatabase extends RoomDatabase {
...
}
这将告诉Room去查找Converters类,以查找要使用的TypeConverter。
AppDatabase db = Room.databaseBuilder(getApplicationContext(),
AppDatabase.class, "database-name").build();
UserDao userDao = db.userDao();
通过使用正确的方式来定义TypeConverter,以及正确地配置AppDatabase实例,您应该能够成功地使用TypeConverter在Room中使用自定义类型。