Kan iemand mij het concept uitleggen van de toString()
methode, gedefinieerd in de Object
klasse? Hoe wordt het gebruikt, en wat is het doel?
Uit de Object.toString() docs:
Geeft een string-weergave van het object. In het algemeen geeft de methode toString methode een string terug die "tekstueel vertegenwoordigt" dit object. Het resultaat moet een beknopte maar informatieve representatie zijn die gemakkelijk voor een persoon te lezen is. Het is aanbevolen dat alle subklassen deze methode overriden.
De methode toString voor de klasse Object geeft een string terug die bestaat uit de naam van de klasse waarvan het object een instantie is, het at-teken `@', en de ongetekende hexadecimale representatie van de hash code van het object. Met andere woorden, deze methode retourneert een string gelijk aan de waarde van:
getClass().getName() + '@' + Integer.toHexString(hashCode())
Voorbeeld:
String[] mystr ={"a","b","c"};
System.out.println("mystr.toString: " + mystr.toString());
output:- mystr.toString: [Ljava.lang.String;@13aaa14a
Het kan optionele toepassingen hebben binnen de context van een applicatie, maar veel vaker wordt het gebruikt voor debugging doeleinden. Bijvoorbeeld, wanneer je een breekpunt in een IDE raakt, is het veel gemakkelijker om een zinvolle toString()
van objecten te lezen dan het is om hun leden te inspecteren.
Er is geen vaste eis voor wat een toString()
methode moet doen. Volgens afspraak vertelt de methode je meestal de naam van de klasse en de waarde van relevante data leden. Vaker wel dan niet worden toString()
methodes automatisch gegenereerd in IDEs.
Vertrouwen op bepaalde output van een toString()
methode of het parsen ervan binnen een programma is een slecht idee. Wat je ook doet, ga niet die kant op.