Estava primeiramente tratando “primeirasLetraA” como um array de char, mas não estava
conseguindo ver se estava vazio. Troquei então por Character, mas ao executar, está
dando NullPointerException nessa linha:
Obrigado, funcionou.
Mas continuo sem entender porque estava errado.
Você poderia me explicar?
A
adrianoandrade
Complementando a resposta do L.Frias e respondendo sua pergunta:
O método equals() tem a seguite assinatura:
publicbooleanequals(Objecto);
você esta chamando:
if(!primeirasLetrasA[auxiliar].equals(null))
Viu? Você está passando null. Ele espera um Object ou qualquer filho dele(Todas as classes). null não é um Object nem filho dele.
Por isso dá erro.
Mas você pode comparar da forma como o frias falou.
if(primeirasLetrasA[auxiliar]!=null
pois você a verdade está falando o seguinte na istrução acima:
“A minha variavél de referencia NÃO está apontando para null?” (null no contexto pode ser “nada”).
se você colocar:
primeirasLetrasA[auxiliar]=null
você receberá false.
Se tiver resolvido sua dúvida coloque o tópico como resolvido.
L
l.frias
Esclareceu bastante.
Obrigado
sergiotaborda
l.frias:
sergiotaborda:
l.frias:
if(!primeirasLetrasA[auxiliar].equals(null))
O que está errado?
Muito obrigado a todos.
if(primeirasLetrasA[auxiliar]!=null)
Não ha nenhum problema em comparar um objeto com null, mas o resultado sempre será false. Porquê ? Porque é o que manda o contrato do método equals. E porquê isso ? porque nenhum objecto é igual a null (nada).
Comparar com null significa comparar a referencia da variável e não a equivalencia do valor do objeto.
Além disso ,se a variável onde se invoca o equals é ela mesma null, temos um NullPointerException
Experimente rodar isto:
Stringa=null;if(a.equals("oi")){
}
Vai acontecer um NullPointerException porque ‘a’ não foi definido e ainda é null.
Mais detalhes sobre como comparar variáveis e valores, aqui.