gpt4 book ai didi

dart - 可以指定一个 Dart 接口(interface),该接口(interface)可以由具有同步或异步方法的类实现吗?

转载 作者:行者123 更新时间:2023-12-03 02:53:47 26 4
gpt4 key购买 nike

对于使用远程服务的 Dart 组件,我首先将 Dart 服务接口(interface)定义为一个抽象类(例如抽象类 XService)和一个模拟类(类 XServiceMock 实现 XService),其中的同步方法实现了我用于测试的服务 API组件。我现在开始实现真正的代理(XServiceImpl 类实现 XService),它的一些方法使用了“await/async”语言特性。 ‘await’ 要求包含方法使用 async 注释,这需要返回类型为 Future 并使其与 XService 中的方法签名相冲突。我希望能够在不修改组件源代码的情况下注入(inject)模拟代理或真实代理。这可以做到吗?怎么做?

XService (api)
XServiceMock implements XService (sync methods only)
XServiceImpl implements XService (mixture of async and sync methods)

最佳答案

这是不可能的。您可以做的是指定一个异步接口(interface)并从同步代码中返回一个 future 。

return new Future.value(someReturnValue);

关于dart - 可以指定一个 Dart 接口(interface),该接口(interface)可以由具有同步或异步方法的类实现吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28790400/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com