Eu também acho, mas fora isso tem algum problema ou desvantagem?!?
Obrigado e até mais…
Fernando Vieira
T
thingol
Depende do seu chefe. Se ele for chato, vai lhe perseguir até a morte porque você não fez as coisas do jeito “best practices” (não importa muito quais sejam as “best practices” - são aquelas coisas que alguém recomendou fazer, e você faz não sabe por quê - na verdade você até sabe: porque seu chefe mandou).
A dica é: escreva um benchmark antes de perguntar.
D
darkh4ck3rs
Ola!!
Ah entendi, mas eu digo em questão de queda de desempenho, desvantagens, etc. não existe mesmo né?!?!?
Obrigado e até mais…
Fernando Vieira
ramilani12
Há diferença de processamento em usar esse método ?
intx=5;Stringteste=String.valueOf(x);
T
thingol
Bom, “” + x vai fazer o seguinte:
a) Cria um objeto StringBuilder
b) Inicializa-o com o conteúdo da string “”
c) Chama o método StringBuilder.append (int), que faz a conversão
d) Chama o método StringBuilder.toString, que cria uma nova string a partir do conteúdo do StringBuilder. (Você sabia que o compilador Java faz tudo isso para compilar o operador “+” quando se usam strings?)
Integer.toString(x) faz o seguinte:
a) Chama o método Integer.toString (int), que faz a conversão e cria uma nova string.
String.valueOf(x) faz mais ou menos a mesma coisa que Integer.toString(x), portanto pode ser usada em lugar de Integer.toString(x).
Só de ler a seqüência descrita de operações, você pode verificar “” + x é bem mais ineficiente que Integer.toString(x). Sacou?
T
thingol
No entanto, não condeno o uso de “+” para concatenar strings.
De fato pode até ser mais eficiente que o uso explícito do StringBuffer que se vê por aí, se for feito com critério (por exemplo, sem ser dentro de um loop).
É que quando existe uma alternativa que é sabidamente mais rápida, use-a - para evitar reclamação daqueles chefes chatos que leram o artigo da Java Magazine escrito pelo Osvaldo Doederlein sobre desempenho.