我想使用“suspend”关键字修改高阶函数。以下是我想要的:
public fun login(io: suspend () -> ResLogin): Unit {}
我尝试使用:
val lambdaTypeName = LambdaTypeName.get(returnType = responseBean)
但得到以下代码:
public fun login(io: () -> ResLogin): Unit {}
不知道如何下手,官网API查了很久也没有找到类似的答案。希望老大指点!
最佳答案
答案已经找到了,可以通过LambdaTypeName.copy(suspending = true)来解决,具体代码如下:
val lambdaTypeName = LambdaTypeName.get(returnType = responseBean)
FunSpec.builder(it.methodName).addParameter(ParameterSpec.builder("io",lambdaTypeName.copy(suspending = true)).build())
关于kotlin - kotlin Poet中如何实现 suspend 关键字修改高阶函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70517435/