2

我想用“suspend”关键字修改高阶函数。以下是我想要的:

public fun login(io: suspend () -> ResLogin): Unit {}

我尝试使用:

val lambdaTypeName = LambdaTypeName.get(returnType = responseBean)

但是得到以下代码:

public fun login(io: () -> ResLogin): Unit {}

不知道怎么下手,官网API查了很久也没找到类似的答案。希望老板指点!

4

1 回答 1

2

已经找到答案了,可以通过LambdaTypeName.copy(suspending = true)解决,具体代码如下:</p>

val lambdaTypeName = LambdaTypeName.get(returnType = responseBean)
                FunSpec.builder(it.methodName).addParameter(ParameterSpec.builder("io",lambdaTypeName.copy(suspending = true)).build())
于 2021-12-29T09:51:40.287 回答