我正在尝试设计一个接口来抽象不应直接从 UI 使用的长时间运行的操作。为了抽象它,我创建了一个抽象类,其中包含执行此类操作的唯一方法:
abstract class MakeSomething {
Result make(Param param);
}
但是我无法将其标记为async
(尝试放在签名之前、返回类型之前和分号之前)。有可能吗?如果有的话,如何实现?
async
函数几乎总是必须返回一个Future
。 (一个不常见的例外是async
函数可能有一个void
返回类型为“即发即弃”;在这种情况下,函数完成时没有自动方式通知调用者。)
如果你想要你的make
函数是异步的并提供Result
对于调用者,它必须返回Future<Result>
.
注意async
不是函数类型签名的一部分;async
是一个上下文关键字enables指某东西的用途await https://stackoverflow.com/a/54634939/179715在函数体内。这意味着async
在声明抽象接口时不是很有用。重要的部分是该函数返回一个Future
,并且派生类可以选择是否使用来实现该函数async
/await
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)