2010-08-23 6 views
5

Quelqu'un peut-il dire à quoi sert toString dans Android et comment il peut être utilisé?Android + toString

Comme exemple serait très apprécié.

+1

Personne ne peux pas vous obtenez !!!! – Praveen

+0

@Praveen: de quoi parlez-vous? –

Répondre

3

Son même que dans Java normal ... Je l'utilise pour le débogage comme ceci:

class MyClass { 
    var myVar; 
    var myOtherVar; 

    public String toString() { 
     return "myVar: " + myVar + " | myOtherVar: " + myOtherVar; 
    } 
} 

avec Log.d("TAG", myClassObject.toString()); je peux connecter ce que mon objet contient ... c'est juste l'une des innombrables possibilités.

16

toString n'est pas spécifique à android. C'est une méthode dans la classe Object de java, qui est la super-classe de chaque objet java. 'toString' est destiné à renvoyer la représentation textuelle d'un objet. Ceci est généralement remplacé par les classes Java pour créer une chaîne lisible par un humain pour représenter cet objet.

Outre de nombreuses autres utilisations, il est largement utilisé à des fins de journalisation afin d'imprimer l'objet dans un format lisible. L'ajout d'un objet avec une chaîne appelle automatiquement toString() de cet objet, par ex. "abc" + myObject invoqueront « toString » de myObject et ajouter la valeur retournée à « abc »

Un bon exemple de mise en œuvre de toString ressemblerait -

@Override 
    public String toString() { 
    return new StringBuilder() 
    .append("{Address:") 
    .append(" street=").append(street) 
    .append(", pincode=").append(pincode) 
    .append("}").toString(); 
    } 
0

Il est pas comme Java. Remplacer exemple:

@Override 
public String toString() 
{ 
    return new StringBuffer() 
    .append("[Museum]-") 
    .append(name) 
    .append(" Lat:") 
    .append(lat) 
    .append(" Lon: ") 
    .append(lon).toString(); 
} 

Et l'utilisation de la méthode est

Log.i(LOG_TAG, museum.toString()); // Instead of just "museum" 
+0

Qu'est-ce qui ne ressemble pas à Java? – akashr

2
class Account { 

    public final String name; 
    public final String email; 

    public Account(String name, String email) { 
     this.name = name; 
     this.email = email; 
    } 

    @Override 
    public String toString() { 
     return new Gson().toJson(this); 
    } 

} 
+1

Simple et efficace. Je l'ai mis dans ma classe Model de base pour couvrir tous les objets –