Qual a diferença entre String.valueOf() e toString() ??
Diferença entre métodos
10 Respostas
Não sei se tem, acho que não, a direferença tá que String.value(), pode receber vários formatos de dados que serão convertidos para String, o toString retorna a implementação de toString no objeto, que se não for sobrescrita retorna a padrão de Object (return getClass().getName() + “@” + Integer.toHexString(hashCode())
O método toString é herdado de Object e retorna a representação textual do objeto do qual foi invocado.
O método valueOf() recebe um parâmetro e retorna a descrição textual (String) do objeto passado como parâmetro.
toString() é definido pela classe do objeto em causa. É a classe que decide que texto retornar.
String.valueOf() se aplica a primitivos e objetos. Para os primitivos os numeros são convertidos para string excepto os char que são convertidos para um string de um caracter só. Isto é necessário já que primitivos não têm toString().
Para os objetos é feito uma chamada a toString() mas apenas se o objeto passado não for null. Se for null a string “null” será retornada.
Ou seja, o codigo de toString() vc define na classe, o codigo de valueOf() é mais ou menos assim:
public static String valueOf(Object obj){
return obj == null ? "null" : obj.toString();
}
Bom pra nao criar outro topico deixa eu pegar o Bonde aqui e perguntar, visto o que foi falado qual a diferença entre os dois metodos abaixo sendo que a saída e a mesma.
Double numero = 2.5;
String teste = numero.toString(); // retorna uma string.
String teste1 = String.valueOf(numero); // também retorna uma string.
Qual diferença entre isso?
Bom pra nao criar outro topico deixa eu pegar o Bonde aqui e perguntar, visto o que foi falado qual a diferença entre os dois metodos abaixo sendo que a saída e a mesma.Double numero = 2.5; String teste = numero.toString(); // retorna uma string. String teste1 = String.valueOf(numero); // também retorna uma string.Qual diferença entre isso?
Galera, agora é possível ter acesso ao código destas classes. O mais fácil é abrir e olhar. O método "toString" de double é implementado como abaixo:
public String toString() {
return String.valueOf(value);
}
valueOf
public static String valueOf(Object obj)
Returns the string representation of the Object argument.
Parameters:
obj - an Object.
Returns:
if the argument is null, then a string equal to “null”; otherwise, the value of obj.toString() is returned.
See Also:
Object.toString()
http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html#valueOf(java.lang.Object)
public static void main(String[] args) {
OutraClasse c = null;
System.out.println(c.toString()); //Será lançado NullPointerException
System.out.println(String.valueOf(c)); //Será escrita a palavra "null" na tela
}
ok?
hum vlw ae galera, eu to usando o eclipse aqui como que faz pra acessar as classes, com os métodos pra poder olhar aqui?
-
o método toString() como os amigos ja responderam é um metodo que é constantemente sobrescreto pela maioria das classes. É o método que tem o papel de descrever o objeto.
-
O método valueOf() é um método comum utilizado nas classes Wrappers utilizado geralmente para trasformar o valor de um objeto para um outro, dependendo da classe Wrapper. No caso o método valueOf() de String retorna um String.
No caso,Integer.valueOf(“100”)retornaria um Integer.
Espero der contribuido.
Me corrijam ai qualquer coisa.
[]'s
Bom pra nao criar outro topico deixa eu pegar o Bonde aqui e perguntar, visto o que foi falado qual a diferença entre os dois metodos abaixo sendo que a saída e a mesma.Double numero = 2.5; String teste = numero.toString(); // retorna uma string. String teste1 = String.valueOf(numero); // também retorna uma string.Qual diferença entre isso?
faça numero = null e veja a diferença.
(a primeira dá NullPointerException a segunda faz teste1 = "null" )