Я передаю лямбда-выражение в качестве аргумента методу и хочу изменить переменную, которая определена вне лямбда-выражения.
Я пробовал несколько вещей. В настоящее время у меня есть AtomicBoolean
под названием success
. В лямбда-выражении я вызываю success.set(true)
. Однако, когда я регистрирую значение переменной success
, оно все еще false
и, похоже, не обновляется.
В основном я вызываю функцию с возвращаемым типом void и мне нужно узнать, была ли функция успешной.
Что я делаю не так?
Вот код:
public void createUser(String email, String password) {
AtomicBoolean success = new AtomicBoolean(false);
Amplify.Auth.signUp(
email,
password,
AuthSignUpOptions.builder()
.userAttribute(AuthUserAttributeKey.email(), email)
.build(),
result -> success.set(true),
error -> Log.e("AuthQuickStart", "Sign up failed", error)
);
Log.d("success", String.valueOf(success.get()));
}