Queria que vocês me dessem uma dica a respeito de um probleminha que estou tendo com null pointer…
No meu sistema de inclusão de login e senha eu verifico o login se já existe. Porém caso for a 1ª inclusão na tabela ou não existe o login informado, a consulta retorna nula é claro, então vem o null pointer. Então gostaria de saber o que posso fazer para mudar isso, para não ter essa exception.
vc pode colocar um if pra verificar se o retorno é null dai so então fazer a compraração…
if( rs.getString( "CAMPOSENHA" ) != null ) {
valida a senha....
}
esse é a maneira mais simples eu acho, se vc postar o código será melhor pra alguem apresentar uma solução mais adequada…
C
ChristielenPJ
Eu já usei o if (str.equals(null)) e mesmo assim deu NullPointer
FieroddPJ
nesse caso acho q vc deve utilizar if(rs.getString(“senha”) != null)
pois usando o metodo equals ele vai tentar comparar a string com null e dara NullPointerException novamente
vc pode tratar no select tambem
select usuario, coalesce(senha, ‘’) from tabela …
S
SchuenemannPJ
A condição obj.equals(null)sempre vai dar false. Tem que comparar com == ou !=
J
jaireltonPJ
Só pra esclarecer: um objeto nunca é nulo, o que é nulo é a referencia, e se a referencia é nula como você pode chamar um metodo dela? (isso inclui o equals())… quando você chamar o equals() vai lançar NullPointerException nele…
equals() compara objetos, o que compara referencias é == e !=
C
ChristielenPJ
Segue o código
try{service=(ClienteService)ServiceFactory.getService(ClienteService.class);cliente=service.consultarByCnpjCpf(cnpfCpf);if(cliente.getCnpjCpf()!=null){if(cnpfCpf==cliente.getCnpjCpf()){JOptionPane.showMessageDialog(null,"CNPJ ou CPF existente!"+"\nDigite novamente!","Mensagem",JOptionPane.ERROR_MESSAGE);erro=true;}else{erro=false;}}else{erro=false;}}catch(SystemSifiExceptionex){ex.printStackTrace();}catch(SifiExceptionex){ex.printStackTrace();}catch(NullPointerExceptionex){ex.printStackTrace();erro=false;}
Eu mudei de equals para == ou != e continuou…
java.lang.NullPointerException
BrunoBastosPJ
olha esses 2 ifs
para comparar com == podem ser inteiros, double booleans etc… ou quando você que comparar um objeto com null. no método cliente.getCnpjCpf() ele retorna oque? Uma String? se for uma String você tem que comparar assim
if(cnpfCpf.equals(cliente.getCnpjCpf())){
essa exception tb pode estar sendo lançada por esses 2 objetos
service ou cliente. Caso em algum desses métodos estejam retornando null. Se você tentar chamar um método em uma referência que está apontando para null ele lança essa nullpointerexception em tempo de excução. Tenta imprimir o objeto service e o objeto cliente com um System.out e ve se algum deles aparece como null.
C
ChristielenPJ
Eu já fiz usando equals e == e sempre dá nullpointer
J
jaireltonPJ
service = (ClienteService) ServiceFactory.getService(ClienteService.class);
cliente = service.consultarByCnpjCpf(cnpfCpf);
Provavelmente seu problema está aí, alguma dessas referencias está nula…
P
pregospanPJ
ele esta dando NullPointerException porque ou a referencia service ou a referencia cliente está null, então quando se tenta acessar algum metodo da a exeção…
Coloca um System.out.println(service) antes de acessar o metodo da classe service e outro antes de acessar cliente pra que vc vai descobrir qual esta ficando null…