У меня есть оператор 'if' для проверки исключения нулевого указателя, но эта строка сама дает исключение нулевого указателя - PullRequest
0 голосов
/ 30 июня 2018

Код

if (dataSnapshot.child("Email").getValue().toString()==null) {
                    Email.setText("Email not found");
                } else {
                    Email.setText(dataSnapshot.child("Email").getValue().toString());
                }

                if (dataSnapshot.child("Quote").getValue().toString()!=null) {
                    Email.setText(dataSnapshot.child("Quote").getValue().toString());
                } else {
                    Email.setText("Quote not found");
                }

Строка оператора if сама показывает ошибку. Как мне решить эту проблему?

Ответы [ 3 ]

0 голосов
/ 30 июня 2018
if (dataSnapshot.child("Email").getValue().toString()==null) {

}

установить точку останова перед if и отладить ее. Я думаю, либо dataSnapshot равно нулю, либо dataSnapshot.child("Email") приводит к нулю, что вызывает ошибку.

0 голосов
/ 30 июня 2018

Вот как вы можете переписать его:

if(dataSnapshot != null && dataSnapshot.hasChild("Email") && dataSnapshot.child("Email").getValue() != null ){
    //Your code...
}

Вы должны проверить все возможности.

0 голосов
/ 30 июня 2018

Вы проверяете, является ли значение toString() нулевым. Только это значение.

Вы не проверяете ни одно из предшествующих ему значений.

dataSnapshot может быть нулевым.
dataSnapshot.child("Email") может быть нулевым.
dataSnapshot.child("Email").getValue() может быть нулевым.

Взять каждое значение, сохранить его в переменной и выполнить нулевую проверку ВСЕХ этих значений.

Это единственный способ сделать это на Java.

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