Cuidados com o método toString() em Java

Costumei ver algumas vezes trechos de códigos em Java onde seus desenvolvedores utilizaram o método toString() como um método conversor para String, quando na verdade a finalidade desse método é somente permitir que se obtenha algum representação significativa de um determinado objeto. A classe Object, que é a classe primordial possui este método e como todas as outras classes são herdadas da classe Object, todas elas têm um método toString().

Irei mostrar dois exemplos dos que mais costumo ver e também mostrar alguns cuidados que deve-se tomar:

Pegar um parâmetro da requisição:

1
String value = request.getParameter("parametro").toString();

De cara já é um código estranho, pois não existe a necessidade de converter o valor do parâmetro para String já que o método getParameter() já retorna uma String. Outro problema é que caso o parametro não exista você vai receber um belo NullPointerException. O correto seria:

1
String value = request.getParameter("parametro");

Pegar atributo da requisição:

1
String value = request.getAttribute("parametro").toString();

Parecido com o primeiro exemplo, caso o atributo não existe será lançado um NullPointerException. Como este método retorna um Object realmente devemos converter o valor do atributo para o tipo esperado, mas uma melhor forma de fazer essa conversão seria:

1
String value = (String) request.getAttribute("parametro");

Com isso deixo um pequena dica de como evitar bugs…


comments powered by Disqus