Cela peut sembler très basique ... quelqu'un peut-il expliquer l'utilisation de la méthode toString()
et quand l'utiliser efficacement? J'ai fait une recherche sur google mais je n'ai pas trouvé de bonne ressource.quand utiliser la méthode toString()
Répondre
Dans la plupart des langues, toString
ou la méthode équivalente garantit simplement qu'un objet peut être représenté textuellement. Ceci est particulièrement utile pour la journalisation, le débogage ou toute autre circonstance où vous devez pouvoir rendre n'importe quel objet que vous rencontrez sous la forme d'une chaîne.
Les objets implémentent souvent un comportement personnalisé toString
afin que la méthode vous indique réellement quelque chose au sujet de l'instance d'objet. Par exemple, une classe Person
peut l'ignorer pour retourner "Nom, Prénom" tandis qu'une classe Date
affiche la date formatée selon certains paramètres par défaut (tels que la culture de l'interface utilisateur actuelle).
En supposant .NET ou Java:
En général, vous devez surcharger ToString() lorsque vous souhaitez une représentation textuelle de votre classe (en supposant qu'il est logique pour votre classe).
Vous pouvez utiliser toString() sur une classe en l'écrasant pour fournir une représentation textuelle significative de votre objet.
Par exemple, vous pouvez remplacer toString() sur une classe Person pour renvoyer le prénom et le nom.
To string est à utiliser lorsque vous avez besoin de changer un type de données en chaîne. Pour les types intégrés comme int et ainsi, les représentations de chaînes sont ce que vous attendez. à savoir
int i = 5;
string s = i.ToString(); //s now equals "5"
vous donne la chaîne de caractères « 5 » pour la plupart des types complexes et tous les types créés par l'utilisateur dont vous avez besoin de surcharger la méthode ToString ou vous n'obtenir le nom de la classe. To string vous permet d'utiliser la construction de formage complexe dans .net avec vos propres objets. vous pouvez fournir des formateurs complexes comme le fait la classe datetime pour donner de la flexibilité dans l'utilisation de vos propres types.
- Vous souhaitez afficher un objet et ne veulent pas vérifier si elle est nulle avant.
- Vous souhaitez concaténer des chaînes et ne pas penser à un attribut spécial, fournissez simplement une valeur par défaut au programmeur.
Ainsi:
out.println("You are " + user);
affichera "Vous êtes nul" ou "Vous êtes James" si l'utilisateur est affiche null ou toString "James" pour cette instance (existante).
Il existe plusieurs situations dans lesquelles on souhaiterait remplacer la méthode toString d'une classe (dont la plupart sont déjà mentionnées dans les réponses existantes), mais l'une des situations les plus courantes dans lesquelles j'ai dû appeler explicitement toString sur un objet est lors de l'utilisation de StringBuilder pour construire une chaîne.
public String createString(final String str) {
final StringBuilder sb = new StringBuilder(str);
sb.append("foo");
sb.append("bar");
return sb.toString();
}
toString() peut être utilisé pour éviter l'adresse hexadécimale, afin de surmonter ce problème, vous devez remplacer toString(), vous obtiendrez le format de texte original des données.
Lorsque vous imprimez la variable de référence alors que la tâche suivante se produira.
- si la variable de référence contient une valeur nulle valeur null sera affiché.
- si la variable de référence contient l'adresse d'un objet alors
toString()
méthode sera appelée par la machine virtuelle Java automatiquement.
Par défaut toString()
de Object.class
imprimera:
ClassName @ HexadecimalOfHashCode
Vous pouvez remplacer cette méthode dans votre classe pour afficher une chaîne significative. Habituellement toString()
méthode est utilisée pour imprimer le contenu d'une méthode object.This est déjà dans de nombreux java substituée classe intégrée comme String
, StringBuffer
, integer
etc.
Il utilisé lorsque nous devons afficher les valeurs de champ que nous initialize par le constructeur et ce qu'il faut afficher sans utiliser de getter.
import Test.Date;
public class Employ {
private String firstname;
private String lastname;
private Date DOB;
private Date DOH;
public Employ(String name,String lastname,Date DOB,Date DOH)
{
this.firstname=name;
this.lastname=lastname;
this.DOB=DOB;
this.DOH=DOH;
}
public String toString(){
return String.format("%s %s Birthday %s Hired %s",firstname,lastname,DOB,DOH);
}
public static void main (String args[])
{
Date dob= new Date(12,3,1992);
Date doh= new Date(10,6,2005);
Employ em= new Employ("BOB", "Wrigh", dob,doh);
System.out.println(em);
}
}
Dans quelle langue? –
En Java ... et aussi dans un C++ codebase je travaille, il y a une implémentation personnalisée de la fonction toString utilisée pour le débogage .. –
Voici un article qui montre comment et quand utiliser toString method.http: // coffeewithcode .com/2011/11/03/tostring-méthode-de-classe-d'objet-en-java / –