Qualcuno può spiegarmi il concetto del metodo toString()
, definito nella classe Object
? Come si usa e qual è il suo scopo?
Dalla documentazione di Object.toString():
restituisce una rappresentazione stringa dell'oggetto dell'oggetto. In generale, il metodo toString
restituisce una stringa che "rappresenta" testualmente questo oggetto. Il risultato dovrebbe essere una rappresentazione concisa ma informativo che sia facile da leggere per una persona. È raccomandato che tutte le sottoclassi sovrascrivano questo metodo.
Il metodo toString per la classe Object restituisce una stringa composta dal nome della classe di cui l'oggetto è un'istanza, il carattere at-sign `@' e la rappresentazione esadecimale senza segno rappresentazione del codice hash dell dell'oggetto. In altre parole, questo metodo restituisce una stringa uguale al valore di:
getClass().getName() + '@' + Integer.toHexString(hashCode())
Esempio:
String[] mystr ={"a","b","c"};
System.out.println("mystr.toString: " + mystr.toString());
output:- mystr.toString: [Ljava.lang.String;@13aaa14a
Può opzionalmente avere usi nel contesto di un'applicazione, ma molto più spesso è usato per scopi di debug. Per esempio, quando si colpisce un punto di interruzione in un IDE, è molto più facile leggere un significativo toString()
di oggetti che ispezionare i loro membri.
Non c'è un requisito stabilito per ciò che un metodo toString()
dovrebbe fare. Per convenzione, il più delle volte vi dirà il nome della classe e il valore dei membri dei dati pertinenti. Più spesso che no, i metodi toString()
sono generati automaticamente negli IDE.
Fare affidamento su un particolare output da un metodo toString()
o analizzarlo all'interno di un programma è una cattiva idea. Qualunque cosa facciate, non seguite questa strada.