1
resposta

java.lang.String br.com.alura.agenda.model.Telefone.getNumero()

Boa tarde,

Tentei compilar meu último código mas continua o problema de null reference no Telefone.getNumero(). No começo havia retirado o problema com um if not null, porém com o AsyncTask agora ele persiste. O código atual eu deixei assim:


private void vincula(View view, Aluno aluno) {
        TextView nome = view.findViewById(R.id.item_aluno_nome);
        nome.setText(aluno.getNome() + " " + aluno.dataFormatada());
        TextView telefone = view.findViewById(R.id.item_aluno_telefone);
        new BuscaPrimeiroTelefoneDoAlunoTask(dao, aluno.getId(), telefoneEncontrado -> {
            String numero = telefoneEncontrado.getNumero();
            if (numero != null){
                telefone.setText(numero);
            }
        }).execute();
    }




java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String br.com.alura.agenda.model.Telefone.getNumero()' on a null object reference
        at br.com.alura.agenda.ui.adapter.ListaAlunosAdapter.lambda$vincula$0(ListaAlunosAdapter.java:60)
        at br.com.alura.agenda.ui.adapter.-$$Lambda$ListaAlunosAdapter$k5bSuJr5kjlq_x2K8fNKkUNtoSo.quandoEncontrado(Unknown Source:2)
        at br.com.alura.agenda.asynctask.BuscaPrimeiroTelefoneDoAlunoTask.onPostExecute(BuscaPrimeiroTelefoneDoAlunoTask.java:34)
        at br.com.alura.agenda.asynctask.BuscaPrimeiroTelefoneDoAlunoTask.onPostExecute(BuscaPrimeiroTelefoneDoAlunoTask.java:10)
        at android.os.AsyncTask.finish(AsyncTask.java:771)
        at android.os.AsyncTask.access$900(AsyncTask.java:199)
        at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:788)
        at android.os.Handler.dispatchMessage(Handler.java:106)
        at android.os.Looper.loop(Looper.java:223)
        at android.app.ActivityThread.main(ActivityThread.java:7656)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)
1 resposta

Tiago de boa?

Cara valida se o telefoneEncontrado não é nulo antes de usar.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software