segunda-feira, 22 de outubro de 2007

Validação de Strings

É muito frequente encontrar código java semelhante ao seguinte:
if( myStr != null && myStr.equals( "TestString" ) )
{
...
}
Embora o código esteja correcto, é uma pattern recorrente que pode e deve ser simplificada, como na sugestão seguinte:
if( "TestString".equals( myStr ) )
{
...
}
Isto funciona, porque "TestString" existe sempre por ser uma constante (literal), e dado representar um objecto, podemos sempre chamar o metodo equals(...) que por sua vez sabe lidar com o caso de o parâmetro ser null.

Existem ainda situações semelhantes, por exemplo:
if( myStr != null && !myStr.equals( "" ) )
{
...
}
Que podem ser simplificadas de forma a serem mais eficientes, como sugerido a seguir:
if( myStr != null && myStr.length() > 0 )
{
...
}
NOTA: Comparar com a String vazia é menos eficiente, mas se preferirem podem usar a sugestão seguinte, por ser mais concisa.
if( !"".equals( myStr ) )
{
...
}

Sem comentários: