Поскольку решение OPs не работало, я решил реализовать TypeConverter для достижения этой цели.Несмотря на то, что у этого вопроса есть много отрицательных отзывов о том, что этого можно достичь «из коробки», я поделюсь своим решением для тех, кто действительно пытался и не смог этого достичь.
Поэтому я написал класс с именем CustomTypeConverters и аннотировал два методас @TypeConverter.
- stringToGeoPoint (String data)
Этот метод будет принимать строку JSON в качестве входного параметра.Затем он создаст объект GeoPoint с использованием библиотеки Gson с представлением GeoPoint.class и вернет его.
geoPointToString (GeoPoint geoPoint)
Этот метод примет объект GeoPoint в качестве входного параметра.Затем он создаст объект JSON String с использованием библиотеки Gson и вернет его.
CustomTypeConverters.java
public class CustomTypeConverters {
@TypeConverter
public static GeoPoint stringToGeoPoint(String data) {
return new Gson().fromJson(data, GeoPoint.class);
}
@TypeConverter
public static String geoPointToString(GeoPoint geoPoint) {
return new Gson().toJson(geoPoint);
}
}
Затем нам нужно указать этот преобразователь, используяаннотации внутри объекта GeoPoint, который мы определили в нашем POJO.Предположим, у меня есть класс User с объектом GeoPoint,
@TypeConverters(CustomTypeConverters.class)
private GeoPoint geoPoint;
. Я проверил ответ, просмотрев данные / данные / ваш-пакет-приложений / базы данных на устройстве, на котором выполняется этот код.