Я перевожу свое существующее приложение для использования Firebase Firestore. У меня проблема с одной из моих моделей, содержащей список объектов, наследующих абстрактный класс:
// Model
class Project {
...
ArrayList<PaintItem> paintItems;
...
}
abstract class PaintItem {
...
}
class CeilingPaintItem extends PaintItem {
...
}
class WindowPaintItem extends PaintItem {
...
}
Хранение объекта Project
работает нормально, но при его извлечении:
project = documents.toObject(Project.class)
Выдает исключение при попытке создать экземпляр абстрактного класса (PaintItem
). Я подозреваю, что это происходит потому, что сериализация не проверяет, какой класс PaintItem
на самом деле.
Какой лучший способ преодолеть это? Под лучшим я подразумеваю:
- Самый эффективный
- Поддерживается в том случае, если мне нужно изменить поля данных в
PaintItem
и наследующих классах