Я создал преобразователь типов для объекта, который создал в своем приложении для 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;
}
}