Я хочу использовать лямбда-выражение вместо addOnCompleteListener (новый OnCompleteListener <AuthResult>() {{ - PullRequest
2 голосов
/ 05 апреля 2019

Я получаю ошибку при использовании OnCompleteListerner в Java 8 SE Новый анонимный OnCompleteListener () можно заменить на лямбда-меньше ... (Ctrl + F1) Информация о проверке: эта проверка сообщает обо всех анонимных классах, которые могут быть заменены лямбда-выражениями Лямбда-синтаксис не поддерживается в Java 1.7 или более ранних версиях JVM.

            mAuth.createUserWithEmailAndPassword(email1, pass ).addOnCompleteListener(new OnCompleteListener<AuthResult>() {
                @Override
                public void onComplete(@NonNull Task<AuthResult> task) {
                    if (task.isSuccessful())
                    {
                        currentuser=FirebaseAuth.getInstance().getCurrentUser();
                        String uid= currentuser.getUid();
                        secondaryDB=firebaseDatabase.getInstance().getReference().child("android_demo").child("users").child(uid);
                        HashMap<String, String> userMap= new HashMap<>();
                        userMap.put("name",name);
                        userMap.put("fcm",fcm);
                        userMap.put("email",email);
                        userMap.put("mobile",mobile);
                        userMap.put("userid",userid+"");
                        userMap.put("image_url", profileimageUrl);

                        Log.e("DB Called","DatabaseCalled");
                        secondaryDB.setValue(userMap).addOnCompleteListener(new OnCompleteListener<Void>() {
                            @Override
                            public void onComplete(@NonNull Task<Void> task) {

                                if (task.isSuccessful())
                                {
                                    Log.v("success","**************************");
                                }
                            }
                        });
                    }




                }
            });

Ответы [ 2 ]

1 голос
/ 21 июня 2019

Вот лямбда-стиль

.createUserWithEmailAndPassword(email, pass)
.addOnCompleteListener(task -> {
    if (!task.isSuccessful()) {
        //error message
    }else{
        //success message
    }
});

Кроме того, вы можете навести курсор на затененную область, говоря, что его можно заменить лямбда-символом, и нажать ALT + Enter , появится запрос, выберите Заменить на лямбду

0 голосов
/ 05 апреля 2019

Поскольку Lambda представлена ​​в Java 8. Убедитесь, что вы установили Java 8 и более позднюю версию JDK. Лямбда-выражение для «createUserWithEmailAndPassword»:

mAuth.createUserWithEmailAndPassword(emailId, password)
                    .addOnCompleteListener(OnCompleteListener { task ->
                        if (task.isSuccessful) {

                        }}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...