为什么“无法从方法 'toHive' 返回类型为 'Set<ShProblemHive>' 的值,因为它的返回类型为 'ShProblemHive'。”

时间:2021-06-30 07:05:00

标签: flutter class constructor repository flutter-hive

我正在尝试将 Hive 数据库与域和数据层连接起来。但是,我正在努力将我的实体数据类转换为 HiveObject。使用我目前的方法,我收到了这篇文章标题中所示的错误。其他尝试也失败了,我开始意识到,我似乎对这些构造函数的工作原理缺乏了解...

所以一般来说,我想在具有构造函数的域层中使用 class ShProblem

static ShProblem fromEntity(ShmProblemEntity entity) {
    return ShProblem(
      id: entity.id,
      level: entity.level,
    );
  }

此构造函数应通过实体类从/向数据源接收/提供数据。从 Hive 获取数据应该可以工作(未经测试,但至少没有编译错误),但是,相反的方式不适用于 JSON 映射(在 toDocument 构造函数中可见),我使用的是之前使用过其他数据库。

class ShmProblemEntity {
  ShmProblemEntity({required this.id, required this.level, });
  final int id;
  final int level;  

  static ShmProblemEntity fromHive(ShProblemHive hiveObject) {
    return ShmProblemEntity(
      id: hiveObject.id,
      level: hiveObject.level,
    );
  }

   static ShProblemHive toHive() => {
     ShProblemHive(
    id: this.id,
    level: level,
     )
  };

  Map<String, dynamic> toDocument() => {
    "id": id,
    "level": level,
  };

所以,令我感到奇怪的是 fromHive 没有抛出错误而 toHive 抛出错误,尽管我注意到 fromHiveclass 具有相同的数据类型的区别构造函数而 toHive 没有。

0 个答案:

没有答案