80 votes

Différence entre la conversion en String et String.valueOf

Quelle est la différence entre

 Object foo = "something";
String bar = String.valueOf(foo);
 

et

 Object foo = "something";
String bar = (String) foo;
 

130voto

Joachim Sauer Points 133411

Casting de chaîne ne fonctionne que lorsque l'objet est en fait une chaîne de caractères:

Object reallyAString = "foo";
String str = (String) reallyAString; // works.

Il ne fonctionnera pas lorsque l'objet est autre chose:

Object notAString = new Integer(42);
String str = (String) notAString; // will throw a ClassCastException

String.valueOf() cependant essayer de convertir tout ce que vous passer pour un String. Il gère à la fois les primitives (42) et les objets (new Integer(42), à l'aide de l'objet en toString()):

String str;
str = String.valueOf(new Integer(42)); // str will hold "42"
str = String.valueOf("foo"); // str will hold "foo"
str = String.valueOf(null); // str will hold "null"

Remarque surtout le dernier exemple: passage d' null de String.valueOf() retournera la chaîne "null".

16voto

darijan Points 6139

String.valueOf(foo) invoque l » foo .toString() méthode, crée un String hors de lui et il attribue à la barre.

Casting va simplement assigner foo à la barre , puisque les types correspondent. Sinon, l'expression jetterait ClassCastException .

4voto

Les deux produisent la même sortie en cas de String .

Casting échoue si l'objet fourni n'est pas un string.

2voto

tstorms Points 3341

Casting signifie que l'objet doit être de type String, tandis que String.valueOf() peut également prendre d'autres types.

2voto

Syamantak Basu Points 310

La méthode String.valueOf est utilisée pour obtenir la représentation sous forme de chaîne de son objet paramètre.

(String) value convertit la valeur de l'objet en chaîne.

Vous pouvez utiliser la méthode String.valueOf pour obtenir la représentation sous forme de chaîne d'un objet sans vous soucier des références null. Si vous essayez de convertir String sur une référence null, vous obtiendrez une exception NullPointerException.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by: