Usage de la méthode toString() sur un objet String

Usage de la méthode toString() sur un objet String - Java - Programmation

Marsh Posté le 13-09-2005 à 15:04:47    

Bonjour,
 
J'aimerais savoir à quoi peut bien servir cette méthode sur un objet String et dans quels cas il faut l'utiliser.
 
Findbugs me dit : "Appeler String.toString() est juste une opération redondante. Utilisez directement l'objet String".
J'hésite à suivre son conseil  :??:  
 
Merci  :jap:


Message édité par charly007 le 13-09-2005 à 15:36:12
Reply

Marsh Posté le 13-09-2005 à 15:04:47   

Reply

Marsh Posté le 13-09-2005 à 15:11:51    

Ne pas confondre String (l'objet) et string (le type).
Quand tu fais un toString tu fais: String->string

Reply

Marsh Posté le 13-09-2005 à 15:14:38    

thecoin a écrit :

Ne pas confondre String (l'objet) et string (le type).
Quand tu fais un toString tu fais: String->string


 :??:  

Citation :


/**
     * This object (which is already a string!) is itself returned.  
     *
     * @return  the string itself.
     */
    public String toString() {
 return this;
    }


toString renvoie un objet de type String.
 
Et tu es sûr que string existe (un type primitif) ?


Message édité par charly007 le 13-09-2005 à 15:16:23
Reply

Marsh Posté le 13-09-2005 à 15:18:03    

string n'existe pas...


---------------
[:whatde]
Reply

Marsh Posté le 13-09-2005 à 15:31:20    

On utilise traditionnelement toString en java non pas pour faire une conversion, mais pour imprimer un objet quelqu'il soit, laissant libre choix au programmeur pour donner une representation imprimable.
 

Reply

Marsh Posté le 13-09-2005 à 17:02:41    

thecoin a écrit :

Ne pas confondre String (l'objet) et string (le type).
Quand tu fais un toString tu fais: String->string


 
Et la marmotte...  :heink:  
 
jogrey +1

Reply

Marsh Posté le 13-09-2005 à 17:23:50    

jogrey a écrit :

On utilise traditionnellement toString en java non pas pour faire une conversion, mais pour imprimer un objet quelqu'il soit, laissant libre choix au programmeur pour donner une representation imprimable.


Bon d'accord, je comprends l'utilité pour un objet qui n'est pas directement imprimable.
 
Mais pour un objet de type String ?

Reply

Marsh Posté le 13-09-2005 à 17:28:41    

Pour faire un clone de ton objet string peut-être ? :??:
 
(enfin, je dis ça mais j'y connais pas grand chose au java)


---------------
"I wonder if the internal negative pressure in self pumping toothpaste tubes is adjusted for different market altitudes." John Carmack
Reply

Marsh Posté le 13-09-2005 à 17:30:05    

C'est l'usage. Tu peux vouloir imprimer "une chaine a telle adresse de telle taille" plutôt que son contenu...
 
Aussi parceque String hérite de java.lang.Object qui possede un toString() :)

Reply

Marsh Posté le 13-09-2005 à 17:30:39    

charly007 a écrit :

Bon d'accord, je comprends l'utilité pour un objet qui n'est pas directement imprimable.
 
Mais pour un objet de type String ?


 

Code :
  1. java.lang.String extends java.lang.Object

ca te dit quelque chose ??
 
Si oui, http://java.sun.com/j2se/1.4.2/doc [...] bject.html et http://java.sun.com/j2se/1.4.2/doc [...] tring.html

Reply

Marsh Posté le 13-09-2005 à 17:30:39   

Reply

Marsh Posté le 13-09-2005 à 17:42:08    

senternal a écrit :

Code :
  1. java.lang.String extends java.lang.Object

ca te dit quelque chose ??
 
Si oui, http://java.sun.com/j2se/1.4.2/doc [...] bject.html et http://java.sun.com/j2se/1.4.2/doc [...] tring.html


OK, je vois l'intérêt de l'avoir surchargée.
 
Donc, pour répondre complètement à ma question, je peux très bien utiliser l'objet String directement dans une méthode qui attend un String en paramètre.
 
Merci.


Message édité par charly007 le 13-09-2005 à 17:44:00
Reply

Marsh Posté le 13-09-2005 à 19:08:00    

charly007 a écrit :

je peux très bien utiliser l'objet String directement dans une méthode qui attend un String en paramètre.


   [:pingouino]  


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
Reply

Marsh Posté le 13-09-2005 à 21:16:41    


ex : au lieu d'écrire :

Citation :


String myString = "abc";
String myOtherString = traiter(myString.toString());


Je peux écrire :

Citation :


String myString = "abc";
String myOtherString = traiter(myString);


 
Je dis une bêtise ?

Reply

Marsh Posté le 13-09-2005 à 21:30:42    

Pas spécialement, mais je crois que la chose semble relativement logique à la majorité des participants du topic.
 
J'veux dire qu'on a du mal à voir ce qui peut être étonnant dans le fait de fournir un String à une fonction demandant un String
(et "le surchagé" n'a ici pas d'intérêt spécial, c'est juste que tous les objets de la lib standard Java dérivent de java.lang.Object)


Message édité par masklinn le 13-09-2005 à 21:31:26

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 13-09-2005 à 21:31:19    

Non, c'est bien correct, on a bien compris, mais l'idée de faire un toString sur un objet de type String est pour le moins... surprenante.
 
Masklinn résume mon état d'esprit.


Message édité par sircam le 13-09-2005 à 21:31:52

---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
Reply

Marsh Posté le 13-09-2005 à 21:36:31    

sircam a écrit :

Non, c'est bien correct, on a bien compris, mais l'idée de faire un toString sur un objet de type String est pour le moins... surprenante.
 
Masklinn résume mon état d'esprit.


OK, tu m'as fait peur.
J'ai récupéré du code avec cette pratique, alors je me posais cette question [:spamafote]
 
Merci.


Message édité par charly007 le 13-09-2005 à 21:36:40
Reply

Marsh Posté le 13-09-2005 à 22:31:03    

charly007 a écrit :

OK, tu m'as fait peur.
J'ai récupéré du code avec cette pratique, alors je me posais cette question [:spamafote]
 
Merci.


On veut des noms  [:mlc]


---------------
[:whatde]
Reply

Marsh Posté le 13-09-2005 à 22:42:19    

La méthode toString peut être tout à fait utile même pour un objet de type String
 
Imaginons un vecteur d'objets où tu vas placer des Integer, des doubles, des String etc.
Tu pourras appeler la méthode toString sur tous les éléments du vecteur (puisque toString est à la base une méthode héritée de la classe Object)

Reply

Marsh Posté le 14-09-2005 à 10:16:03    

900cbr555 a écrit :

La méthode toString peut être tout à fait utile même pour un objet de type String
 
Imaginons un vecteur d'objets où tu vas placer des Integer, des doubles, des String etc.
Tu pourras appeler la méthode toString sur tous les éléments du vecteur (puisque toString est à la base une méthode héritée de la classe Object)


 
 :cry: Merci de ne pas utiliser le toString pour "caster" vos pseudo-types primitifs...

Reply

Marsh Posté le 14-09-2005 à 12:32:29    

ce n'était qu'un exemple

Reply

Marsh Posté le 14-09-2005 à 15:18:46    

900cbr555 a écrit :

ce n'était qu'un exemple


Oui, mais c'est encore différent que d'appeler explicitement toString() sur un objet déclaré String, hein.


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed