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…