Тип параметра должен быть классом, аннотированным @Entity, или его коллекцией / массивом. / Во время преобразования ArrayList <Float> - PullRequest
0 голосов
/ 20 января 2019

Произошла ошибка при попытке сохранить ArrayList<Float> как столбец в базе данных комнаты

   @Entity(tableName = "Height")
class Height: Serializable {

  @PrimaryKey(autoGenerate = true)
  var id: Long = 0

  @ColumnInfo(name = "data")
  var data: ArrayList<Float>? = ArrayList()
}
@Dao
abstract class HeightDao : BaseDao<Height>() {

  @Insert(onConflict = OnConflictStrategy.REPLACE)
  abstract fun insertAllHeight(listOfHeight: ArrayList<Float>)

Я написал TypeConverter

    @TypeConverter
fun fromArrayListOfFloats(list: ArrayList<Float>?): String {
    return list?.joinToString(separator = ";") { it.toString() } ?: ""
}

    @TypeConverter
fun toArrayListOfFloats(string: String?): ArrayList<Float> {
    return ArrayList(string?.split(";")?.mapNotNull { it.toFloatOrNull() } ?: emptyList())
}

Работает нормально, когда я конвертирую ArrayList<SomeEntityObject>, но в этом случае делает ошибку выше. Пожалуйста, помогите!

...