Не могу понять, как сохранить это поле в базе данных - PullRequest
0 голосов
/ 28 мая 2018

Я создал преобразователь типов для объекта, который создал в своем приложении для Android.

Я не уверен, почему, но компилятор говорит мне, что не может понять, как сохранить это поле вбаза данных;хотя я создал для него TypeConverter.

Что я делаю не так?

ошибка: не удается выяснить, как сохранить это полев базу данных.Вы можете добавить для него конвертер типов.

снимки экрана [];

Game.class

@Entity(indices = {@Index(value = {"id"}, unique = true)})
    public class Game {

        @PrimaryKey
        @NonNull
        private int id;
        private String name, url;

        @TypeConverters(IntArrayTypeConverter.class)
        private int[] platforms, genres, developers;
        @TypeConverters(CoverTypeConverter.class)
        private Cover cover;
        @TypeConverters(EsrbTypeConverter.class)
        private Esrb esrb;
        @TypeConverters(ScreenshotTypeConverter.class)
        private Screenshot[] screenshots;

        public int getId() {
            return id;
        }

        public void setId(int id) {
            this.id = id;
        }

        public int getCreated_at() {
            return created_at;
        }

        public void setCreated_at(int created_at) {
            this.created_at = created_at;
        }

        public int getUpdated_at() {
            return updated_at;
        }

        public void setUpdated_at(int updated_at) {
            this.updated_at = updated_at;
        }

        public String getName() {
            return name;
        }

        public void setName(String name) {
            this.name = name;
        }

        public String getUrl() {
            return url;
        }

        public void setUrl(String url) {
            this.url = url;
        }

        public int[] getPlatforms() {
            return platforms;
        }

        public void setPlatforms(int[] platforms) {
            this.platforms = platforms;
        }

        public int[] getGenres() {
            return genres;
        }

        public void setGenres(int[] genres) {
            this.genres = genres;
        }

        public Cover getCover() {
            return cover;
        }

        public void setCover(Cover cover) {
            this.cover = cover;
        }

        public Esrb getEsrb() {
            return esrb;
        }

        public void setEsrb(Esrb esrb) {
            this.esrb = esrb;
        }

        public Screenshot[] getScreenshots() {
            return screenshots;
        }

        public void setScreenshots(Screenshot[] screenshots) {
            this.screenshots = screenshots;
        }

        public int[] getDevelopers() {
            return developers;
        }

        public void setDevelopers(int[] developers) {
            this.developers = developers;
        }
    }

ScreenshotTypeConverter.класс

public class ScreenshotTypeConverter {

    @TypeConverter
    public static Screenshot[] fromString(String screenshotsJson) {
        if (screenshotsJson == null) return null;

        Gson gson = new Gson();
        Screenshot[] screenshots = gson.fromJson(screenshotsJson, Screenshot[].class);
        return screenshots;
    }

    @TypeConverter
    public static String toString(Screenshot screenshot) {
        if (screenshot == null) return null;

        Gson gson = new Gson();
        String screenshotsJson = gson.toJson(screenshot);
        return screenshotsJson;
    }
}

РАЗРЕШЕНО:

Я только что понял, что не принимаю правильные параметры в моем методе ScreenshotTypeConverter.

    @TypeConverter
    public static String toString(Screenshot[] screenshots) {
        if (screenshot == null) return null;

        Gson gson = new Gson();
        String screenshotsJson = gson.toJson(screenshots);
        return screenshotsJson;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...