Реализация заморожена с Hive и наследованием
Я прочитал документацию, но до сих пор не могу понять, как это работает с полиморфизмом.
См. Пример кода, которого я хочу достичь: abstract class BaseUser extends HiveObject {
@HiveField(1)
final String name;
BaseUser({required this.name});
}
@freezed
@HiveType(typeId: 101)
class Employee with _$Employee {
@Implements(BaseUser)
factory Employee({
required String name,
@HiveField(2) int? salary,
}) = _Employee;
factory Employee.fromJson(Map<String, dynamic> json) => _$EmployeeFromJson(json);
}
@freezed
@HiveType(typeId: 102)
class Manager with _$Manager {
@Implements(BaseUser)
factory Manager({
required String name,
@HiveField(2) String? role,
}) = _Manager;
factory Manager.fromJson(Map<String, dynamic> json) => _$ManagerFromJson(json);
}
void main() {
BaseUser ref = Employee(name: 'name');
}
С,
Вы не можете использовать @With / @Implements с замороженными классами. Замороженные классы нельзя ни расширять, ни реализовывать.
Каким образом можно достичь этого?