[Resolvido] Char vazio, como verificar?

Boa noite.

Tenho o seguinte código:

Character[] primeirasLetrasA = new Character[NUMERO_NOMES];
		int tamanhoRealA = 0;

for (auxiliar = 0 ; auxiliar < primeirasLetrasA.length ; auxiliar++)
				if(!primeirasLetrasA[auxiliar].equals(null))
					tamanhoRealA += 1;

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:

if(!primeirasLetrasA[auxiliar].equals(null))

O que está errado?

Muito obrigado a todos.

[quote=l.frias]

if(!primeirasLetrasA[auxiliar].equals(null))

O que está errado?

Muito obrigado a todos.[/quote]

if(primeirasLetrasA[auxiliar] != null )

[quote=sergiotaborda][quote=l.frias]

if(!primeirasLetrasA[auxiliar].equals(null))

O que está errado?

Muito obrigado a todos.[/quote]

if(primeirasLetrasA[auxiliar] != null )

[/quote]

Obrigado, funcionou.
Mas continuo sem entender porque estava errado.
Você poderia me explicar?

Complementando a resposta do L.Frias e respondendo sua pergunta:

O método equals() tem a seguite assinatura:

public boolean equals(Object o);

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.

Esclareceu bastante.

Obrigado

[quote=l.frias][quote=sergiotaborda][quote=l.frias]

if(!primeirasLetrasA[auxiliar].equals(null))

O que está errado?

Muito obrigado a todos.[/quote]

if(primeirasLetrasA[auxiliar] != null )

[/quote]
[/quote]
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:


String a = 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.

[/quote]

Obrigado pela resposta.