tenho um campo null e faço um if mas está entrando no if e não era…
o que pode ser ???
class Cliente{
@Column
private String tempo;
-----
--comparação
if (cli.getTempo()!=null ||!"".equals(cli.getTempo())||!cli.getTempo().equals("")){
// ta fazendo
}
Lembrando que se atribuirmos ao objeto Cliente o valor null e chamarmos o método, o NullPointerException irá acontecer. Abaixo tem um exemplo que mostra melhor o que eu quero dizer:
[code]public class Main {
public static void main(String args[]) {
Cliente cli = null;
/*
* A conição abaixo gera NullPointerException pois o objeto
* cli é null.
*/
if (cli.getUser() == null) {
}
}
}[/code]
Outra coisa, em condições que queremos verificar se um objeto é nulo e depois fazer outra condição nesse mesmo If, devemos sempre verificar se o objeto é nulo primeiro. Senão também irá ocorrer NullPointerException. Olhem o exemplo abaixo:
public class Main {
public static void main(String args[]) {
Cliente cli = null;
/*
* Aqui também irá ocorrer um NullPointerException, pois a primeira
* condição é executada primeiro.
*/
if ((cli.getUser().equals("Alguma Coisa")) && (cli != null)) {
}
}
}
Abaixo, se invertermos as condições, irá funcionar normalmente.
public class Main {
public static void main(String args[]) {
Cliente cli = null;
/*
* Aqui não irá ocorrer NullPointerException e o fluxo irá entrar
* no "else" e imprimir a String.
*/
if ((cli != null) && (cli.getUser().equals("Alguma Coisa"))) {
System.out.println("O objeto cli não é nulo");
}
else {
System.out.println("O objeto cli é nulo");
}
}
}
Eu também usaria a sugestão Felagund para ver se uma String é vazia ou não.