0

我在我的一个项目中使用 SendBird。其中一个函数用于连接sdk:

SendBird.connect(id, token, object : SendBird.ConnectHandler {
    override fun onConnected(user: User?, e: SendBirdException?) {
        if (e != null) {
            // handle error
        } else {
            // handle success
        }
    }
})

Kotlin 提示我可以将其转换为 lambda:

SendBird.connect(userId.toString(), accessToken) { user, e ->
    if (e != null) {
        // handle error
    } else {
        // handle success
    }
}

问题是 lambda 内部user是类型User!,而真正的类型User?有时会导致崩溃。

@NullableSendBird android sdk 是用 java 编写的,没有任何东西用/正确注释@NonNull。在保持可为空类型的同时使用 lambda 的任何方法User?

4

1 回答 1

2

明确指定类型

SendBird.connect(userId.toString(), accessToken) { user: User?, e ->
    if (e != null) {
        // handle error
    } else {
        // handle success
    }
}
于 2021-01-18T15:09:30.530 回答