2010-08-23 12 views
5

Czy ktokolwiek może powiedzieć, do czego służy toString w Androidzie i jak można go używać?Android + toString

Jako przykład byłby bardzo ceniony.

+1

Nikt nie mogę dostać się !!!! – Praveen

+0

@Praveen: o czym ty mówisz? –

Odpowiedz

3

jest tak samo jak w normalnym Java ... go używać do debugowania tak:

class MyClass { 
    var myVar; 
    var myOtherVar; 

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

z Log.d("TAG", myClassObject.toString()); mogę się zalogować, co mój obiekt zawiera ... To tylko jeden z niezliczonych możliwości.

16

toString nie jest specyficzny dla Androida. Jest to metoda klasy obiektu java, która jest superklasą każdego obiektu java. "toString" służy do zwracania tekstowej reprezentacji obiektu. Zwykle jest to nadpisywane przez klasy java, aby utworzyć czytelny dla człowieka ciąg znaków do reprezentowania tego obiektu.

Oprócz wielu innych zastosowań, jest szeroko stosowany do celów rejestrowania, aby wydrukować obiekt w czytelnym formacie. Dołączanie obiektu za pomocą ciągu automatycznie wywołuje toString() tego obiektu, np. "abc" + myObject wywoła „toString” myObject i dołączyć zwracanej wartości do „abc”

Dobrym przykładem realizacji toString będzie wyglądać -

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

To nie tak jak Java. przykład przesłonić:

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

A następnie wykorzystanie tej metody jest

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

Co nie jest podobne do 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

Prosty i skuteczny. Wstawiam to do mojej podstawowej klasy modelu, aby objąć wszystkie obiekty –