Я пытаюсь реализовать Pusher ChatKit с сайта SDK: 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
.
Я обновил свою 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;
});
Когда я перехожу через отладчик, весь блок пропускается.Методы подключения регистрируют успешное соединение, но result
всегда равно null
.Может кто-нибудь показать мне, как написать тот же обратный вызов с использованием слушателя?Или, покажите мне проблему с моими лямбда-выражениями.
Кстати, chatManager.connect
принимает в качестве параметра Function1<? super Result<CurrentUser, Error> Unit> callback
.Заранее спасибо.Я застрял на этом в течение 2 дней.