【问题标题】:'Invalid override. The type isn't a subtype' when implementing an interface'无效的覆盖。实现接口时类型不是子类型
【发布时间】:2018-07-13 22:59:31
【问题描述】:

我正在尝试在 MealsRepositoryImpl 中实现 MealsRepository 接口,但出现以下错误:

无效的覆盖。 'MealsRepositoryImpl.findAllForCanteenByDate' ('(int, DateTime) -> Future Map int, dynamic ') 的类型不是 'MealRepository.findAllForCanteenByDate' ('(int, DateTime) -> Future Map int, Meal '的子类型)。

我看不出我的错误。我目前正在通过 Dart 插件使用 Intellij。

我已经更新了 Dart 和 Flutter 插件。

abstract class MealsRepository {
  Future<Map<int, Meal>> findAllForCanteenByDate(int canteenId, DateTime date);
}

class MealsRepositoryImpl extends MealsRepository {

  MensaApi api;

  MealsRepositoryImpl(this.api);

  @override
  Future<Map<int, Meal>> findAllForCanteenByDate(int canteenId, DateTime date) {
    return api.getMealsForCanteenByDate(canteenId, date).then((meals) {
      return meals;
    });
  }
}

【问题讨论】:

    标签: dart flutter


    【解决方案1】:

    好的 - 原来错误实际上是我忘记导入 Meal 类。有点愚蠢,但错误消息并没有真正表达出来。

    【讨论】:

      猜你喜欢
      • 2018-06-13
      • 2011-03-03
      • 2017-10-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多