Duvida em testar String com NUlll dando erro NUllPointer

Olá,

como poderia testar se a variavel abaixo está com nulo …

abs

String dataMovimento = req.getParameter("dataMovimento");
	if(dataMovimento.trim() != null || !dataMovimento.equals("") ){
			sql+= "  and   m.dta_mvto_caixa >= '"+ dataMovimento +"' "; 
			sql+= "  and   m.dta_mvto_caixa <= '"+ dataMovimento +"' ";
		}



java.lang.NullPointerException

Você não pode chamar um .trim() em uma referência nula… E mesmo que sua String seja " ", o trim() vai retornar “” e não null.

Modifica o if para if(dataMovimento != null … que vai funcionar.

Obs: Pode deixar a segunda comparação sem se preocupar com o null se continuar usando ||

tá dando nullpointer no .trim() cara. Se a variável dataMovimento é nula não tem como fazer um trim nela.

Crie um método “checarSeVazio” e use-o em vez de ficar sempre copiando e colando o mesmo código. Exemplo:

     if (checarSeVazio (dataMovimento)) {
     ...

...
public static boolean checarSeVazio (String s) {
    return s != null && !s.trim().equals ("");
}

Bom vc nao precisa criar um método para chegar se esta vazio ou nao , pode fazer isto na propia validação da estrutura de controle .

String dataMovimento = req.getParameter("dataMovimento&quot");
	if((dataMovimento != null) && (!"".equals(dataMovimento)) ){
			sql+= "  and   m.dta_mvto_caixa >= '"+ dataMovimento +"' ";
			sql+= "  and   m.dta_mvto_caixa <= '"+ dataMovimento +"' ";
		}
}

Lembrando uma String eh Imutável, tente utilizar StringBuffer ou StringBuilder . Se vc nao estiver trabalhando com treads eh usando JDK 5 Utilize StringBuilder por ser mais rápida.

Só pra lembrar o projeto da Apache, Commons-Lang

tem uma classe chamada StringUtils

StringUtils.isEmpty(null); //retorna true
StringUtils.isEmpty(""); //retorna true
StringUtils.isEmpty("abc"); //retorna false

Existe também o isNotEmpty

Diversos metodos para auxiliar, não tem por que reescrever a roda

[]'s