当前位置: 首页 > 知识库问答 >
问题:

‘无效的重写。实现接口时,类型不是子类型

姚丰羽
2023-03-14

我试图将MealsRepository接口实现到MealsRepositoryImpl中,但是我得到了以下错误:

无效的重写。'mealsrepositoryimpl.findallforcanteenbydate'('(int,DateTime)->Future Map int,dynamic')的类型不是'mealrepository.findallforcanteenbydate'('(int,DateTime)->Future Map int,Meal')的子类型。

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;
    });
  }
}

共有1个答案

柳飞飙
2023-03-14

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

 类似资料:
  • 但是,我也看到了一种奇怪的方法来重写接口方法: 3.子类只实现接口,但由父类重写接口中的方法: 覆盖接口方法的第三种方法在android框架源代码中非常常见,例如: 这样设计的原因是什么?

  • 为什么我不能这样做?我得到编译错误。 那是Java8 我不认为这里违反了任何OO原则。 这真的让我很难实现通用 API...... (我试图将泛型从游戏中剔除,因为泛型API变得反直觉了)

  • 问题内容: 我在使用jre1.8.0_66运行的代码中遇到了这个奇怪的异常: 什么意思 代码如下: 如果我更改为,异常会消失。 这样做的价值: 如果我从任一类中删除,该异常也将消失。但是如果我在两个类中都添加了另一个等效的接口(例如,或某些自定义接口),则会返回。 问题答案: 每当涉及交集类型并且您使用的方法引用使用的接收器类型不是第一个(第一个类型是在类型擦除之后将保留的类型)时,都会发生此问题

  • 因此,我使用附近的连接API来发现我周围的设备,并将它们的数据存储在firestore中,然而,我不断收到2个警告,关于我从我接触的用户那里获得的位置和我接触它们的时间 以下是两个警告: 请问有什么办法吗?

  • 我正在尝试使用节点登录我的RESTAPI。js。但它给了我一个错误的说法: [错误:flatter/lib/ui/ui\u dart\u state.cc(186)]未处理的异常:类型'\u InternalLinkedHashMap 我使用提供者作为我的状态管理解决方案。注册用户进展顺利,但登录功能有问题。 我已经尝试了多种方法来解决这个问题,但运气不好,请帮忙。

  • 问题内容: 为了减少类的依赖性,我想将参数(使用泛型类)发送到扩展某些类并实现接口的构造函数,例如 可能吗? 此外,使用T类,我想使用T.getActivity()作为Context创建视图。 问题答案: T必须扩展Fragment并实现SomeInterface 在这种情况下,您可以声明以下内容: 这将需要扩展和实现类型的对象。 此外,使用T类,我想使用T.getActivity()作为Cont