我正在尝试从 SDK 站点实现 Pusher ChatKit:https ://docs.pusher.com/chatkit 。我更喜欢将我的代码完全保留在 Java 中。
在示例中,有以下代码块:
chatManager.connect { result ->
when (result) {
is Result.Success -> {
// We have connected!
currentUser = result.value // CurrentUser
}
is Result.Failure -> {
// Failure
handleConnectionError(result.error)
}
}
}
但是,上面的代码是用 Kotlin 编写的。在我自己的代码中,mCurrentUser
即使在chatManager.connect
方法运行后也是 null 。
我升级了我的 Android Studio 以运行 Java 8,并尝试使用以下代码:
chatManager.connect(result -> {
if (result instanceof Result.Success) {
mCurrentUser = ((Result.Success<CurrentUser, Error>) result).getValue();
}
if (result instanceof Result.Failure) {
System.out.print(result);
}
return Unit.INSTANCE;
});
当我逐步使用调试器时,会跳过整个块。connect 方法记录一个成功的连接,但result
总是null
. 有人可以告诉我如何使用侦听器编写相同的回调吗?或者,向我展示我的 lambda 表达式的问题。
顺便说一句,chatManager.connect
作为Function1<? super Result<CurrentUser, Error> Unit> callback
参数。提前致谢。我已经坚持了2天。