首先,我是Kotlin编程语言的新手。因此,诸如此类的关键字和概念inline
,reified
和crossinline
在我脑海中还不够清晰。在下面的示例代码中,我使用了这些关键字,因为我需要在运行时知道T
的类型,以便在发出Web请求之前和之后对其进行序列化和反序列化。
这是post
类的ApiClient
函数:
inline fun <reified T> post(entity: T, crossinline completion : (entity : T?, errorStatusCode: Int?) -> Unit) {
performRequest(
httpMethod = Request.Method.POST,
entity = entity,
completion = completion)
}
然后,我从PassengerRepositoryImpl
调用此函数:
override fun register(passenger: Passenger, completion: (passenger: Passenger?, errorStatusCode: Int?) -> Unit) {
apiClient.post(passenger, completion)
}
我的问题是,我的entity
和completion
参数总是在post函数内部“找不到”,如下面的图像所示:
passenger
已正确传递给post
函数:
但是在entity
正文中找不到post
参数。
我的问题是:如何解决这个问题?我有什么困惑吗?
感谢您的帮助。