terça-feira, 13 de novembro de 2007

Validação de Parametros

Hoje deparei-me com o seguinte Código Java numa página JSP:
boolean bDisabled = (new Boolean ((String) (request.getParameter("bDisabled")))).booleanValue();
É mais um caso de conversões implícitas, usadas abusivamente. Mas desta vez o programador, gostou de complicar a coisa, para além do razoável.
Nomeadamente, é preciso que quem chame a página, saiba exactamente, qual é a conversão implícita esperada, que é "true" para true e "false" para false, e tem que respeitar o case.
Assumindo eu, que é válida a seguinte afirmação:
Se não é "true" é implicitamente "false".
Então podemos optar por algo bem mais simples.
boolean bDisabled = "true".equals( request.getParameter( "bDisabled" ) );
A vantagem é óbvia em termos de legibilidade e eficiência.
Nota: No caso em que o parâmetro não é enviado, assumimos que seja equivalente a false, o que é uma assumpção razoável, mas que validei no código existente como perfeitamente válida.
Caso não fosse, bastaria testar esse caso também, e gerar uma excepção para qualquer outro caso, por exemplo.

Sem comentários: