将Kotlin"suspend fun"转换为Java



我正试图将库从Kotlin转换为Java,但这种方法限制了我:

private suspend fun queryPurchases() {
val inappResult: PurchasesResult = mBillingClient.queryPurchasesAsync(BillingClient.SkuType.INAPP)
processPurchases(inappResult.purchasesList, isRestore = true)
val subsResult: PurchasesResult = mBillingClient.queryPurchasesAsync(BillingClient.SkuType.SUBS)
processPurchases(subsResult.purchasesList, isRestore = true)
}

如何在Java中处理suspend fun??

可挂起函数是Kotlin添加的一个特性,是它的专属特性。在Java中,您无法轻松创建甚至调用挂起函数。

您可以忽略原始函数是可挂起的这一事实,并将其视为常规函数,但如果库广泛使用协程,则可能很难将其移植到Java。

Java中最接近的东西可能是CompletableFuture或Reactive Stream。

Spring生态系统中的Project Reactor是一个流行的Reactive Streams实现。

无论使用什么技术,以保持原始代码并发性的方式进行移植可能都不简单。

最新更新