É 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.boolean bDisabled = (new Boolean ((String) (request.getParameter("bDisabled")))).booleanValue();
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.
A vantagem é óbvia em termos de legibilidade e eficiência.boolean bDisabled = "true".equals( request.getParameter( "bDisabled" ) );
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:
Enviar um comentário