Voiko joku selittää minulle, mitä tarkoittaa Object
-luokassa määritelty toString()
-metodi? Miten sitä käytetään ja mikä on sen tarkoitus?
Object.toString() asiakirjoista:
Palauttaa merkkijonoesityksen kohteesta objektin. Yleensä toString -menetelmä palauttaa merkkijonon, joka "tekstuaalisesti edustaa" tätä objektia. Tuloksen pitäisi olla tiivis mutta informatiivinen esitys, joka on henkilön on helppo lukea. Se on suositeltavaa, että kaikki alaluokat ohittavat tämän menetelmän.
Luokan Object toString-metodi palauttaa merkkijonon, joka koostuu sen luokan nimestä, jonka olio on instanssi, at-merkin merkki `@' ja merkitsemätön heksadesimaaliluku hash-koodin esitys. objektin hash-koodi. Toisin sanoen tämä menetelmä palauttaa merkkijonon, joka vastaa arvoa of:
getClass().getName() + '@' + Integer.toHexString(hashCode())
Esimerkki:
String[] mystr ={"a","b","c"};
System.out.println("mystr.toString: " + mystr.toString());
output:- mystr.toString: [Ljava.lang.String;@13aaa14a
Sitä voidaan käyttää myös sovelluksen yhteydessä, mutta paljon useammin sitä käytetään virheenkorjaukseen. Kun esimerkiksi IDE:ssä osuu taukopisteeseen, on paljon helpompaa lukea objektien merkityksellinen toString()
kuin tutkia niiden jäseniä.
Ei ole mitään tiettyä vaatimusta sille, mitä toString()
-metodin pitäisi tehdä. Yleissopimuksen mukaan se useimmiten kertoo luokan nimen ja asiaankuuluvien data-jäsenten arvon. Useimmiten toString()
-metodit luodaan automaattisesti IDE-ohjelmissa.
On huono ajatus luottaa toString()
-metodin tiettyyn tulosteeseen tai jäsentää sitä ohjelmassa. Mitä ikinä teetkin, älä mene tätä reittiä.