Ainda não tem acesso? Estude com a gente! Matricule-se
Ainda não tem acesso? Estude com a gente! Matricule-se

Solucionado (ver solução)

Dúvida porque não compila

Boa tarde,

Estou resolvendo os exercícios do livro da certificação Java e não entendi o porque da resposta da questão citada abaixo:

class B {

void imprime() {
    String msg;
    if(!msg.isEmpty())
        System.out.println(msg);
    else
        System.out.println("empty");
    }
}

O que acontece quando executar o new B().imprime()?

A resposta é que NÃO COMPILA por conta que a variável não foi inicializada.

Eu não entendi, pois quando executar o imprime() a variável será considerada... Alguém pode ajudar??

3 respostas
solução

Oi Leonardo tudo bem?

Nessa linha aqui dá erro :

 if(!msg.isEmpty())

porque como o programa pode verificar se a string está vazia (vazia significa ser igual a "") se ela é nula (não foi atribuído nenhum valor). Por isso dá esse erro.

Espero ter ajudado!!!

ahhh! pefeito! valeu!

Disponha e bons estudos!!!