Реализация заморожена с 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 с замороженными классами. Замороженные классы нельзя ни расширять, ни реализовывать.

Каким образом можно достичь этого?

0 ответов

Другие вопросы по тегам