Как мне написать @TypeConverter так чтобы смочь сохранить в room объект, в котороам есть параметры в виде ArrayList

У меня надо чтобы 2 последних поля в объекте сохранались - это АррайЛисты Стрингов, но room не сохраняет ArrayList, мне надо Конвертер, чтобы его потом к Database подсоединить. Помогите пожалуйста написать @TypeConverter (внизу в примере), перепробовал много разных примеров.

@Entity(tableName = "inventory_table")
public class Inventory {
    @PrimaryKey(autoGenerate = true)
    @NonNull
    private int id;
    @NonNull
    private String date;
    @NonNull
    private String q1;
    @NonNull
    private String q2;
    @NonNull
    private String tools;
    @NonNull
    private ArrayList<String> practiceSentenceList;
    @NonNull
    private ArrayList<String> answerList;
    //Constructors, getters, setters
}

public class Converters {
    @TypeConverter
    public String fromListToString(List<String> practiceSentenceList) {
        //how to write converter here;
    }
    @TypeConverter
    public List<String> fromStringToList(String practiceSentences) {
        //and whst to write here
    }
}

Ответы (1 шт):

Автор решения: lampa

Либо мы соединяем его с другой таблицей, либо конвертируем, например, в json:

@Entity(tableName = "inventory_table")
public class Inventory {
    @PrimaryKey(autoGenerate = true)
    @NonNull
    private int id;

    @NonNull
    private String date;

    @NonNull
    private String q1;

    @NonNull
    private String q2;

    @NonNull
    private String tools;

    @NonNull
    @TypeConverters({ListConverter.class})
    private List<String> practiceSentenceList;

    @NonNull
    @TypeConverters({ListConverter.class})
    private List<String> answerList;
}

public class ListConverter {
    priavate ObjectMapper mapper = new ObjectMapper();

    @TypeConverter
    public String fromListToString(List<String> practiceSentenceList) throws JsonProcessingException  {
        return mapper.writeValueAsString(practiceSentenceList);
    }

    @TypeConverter
    public List<String> fromStringToList(String practiceSentences) throws JsonProcessingException  {
        (List<String>) mapper.readValue(serializeObject, List.class)
    }
}

Не проверял, но должно работать примерно так)

→ Ссылка