使用 Hive 和继承冻结的实现

问题描述

我已经阅读了 documentation,但仍然无法理解它是如何处理多态的。

请参阅我希望实现的示例代码
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 与冻结的类一起使用。冻结的类既不能扩展也不能实现。

实现这一目标的可能方法是什么?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)