нём есть поле — алгоритм(Algorithm).
От абстрактного класса алгоритм унаследован первый алгоритм (FirstAlgorithm) и второй — SecondAlgorithm.
То есть, можно создавать разные профили и выбирать алгоритм.
Я хочу использовать Room для сохранения их в БД. Как делать? Можно ли сделать @Embedded с выбором необходимого класса? Или нужно делать такое же наследование таблиц, как и классов, и делать таблицы профилей и алгоритмов 1к1 ?
Абстрактный класс, а не интерфейс. Там ещё есть базовые поля
Хм, наверное вряд-ли такое получится провернуть. В БД то в любом случае информация будет лежать в виде String(TEXT). И конвертировать явно будете сериализатором. А для его работы нужен точный тип, иначе какую-то фигню получите. Видимо придется как-то изворачиваться с доп полем в абстрактном классе и в конвертере по нему выбирать нужный тип, а потом приводить к общему на выходе. Может кто-то поопытнее вам еще подскажет, ибо у меня других идей нет.
Обсуждают сегодня