JavaRush /Java Blog /Random-TL /10 Mga Tip para sa Pag-override sa Paraang toString() sa ...
Ku6ep
Antas

10 Mga Tip para sa Pag-override sa Paraang toString() sa Java (Bahagi 1)

Nai-publish sa grupo
10 Mga Tip para sa Pag-override sa Paraang toString() sa Java - ToStringBuilder Netbeans Eclipse 10 Mga Tip para sa Pag-override sa Paraang toString() sa Java (Bahagi 1) - 1

Paraan ng Java toString

toStringparaan sa Java ay ginagamit upang magbigay ng malinaw at sapat na impormasyon tungkol sa isang bagay ( Object) sa isang form na nababasa ng tao. Ang wastong paraan ng overriding toStringay makakatulong sa pag-log at pag-debug ng isang Java program sa pamamagitan ng pagbibigay ng mahalaga at mahalagang impormasyon. Dahil toString()ito ay tinukoy sa java.lang.Objectisang klase at ang default na pagpapatupad nito ay hindi nagbibigay ng maraming impormasyon, palaging pinakamahusay na kasanayan na i-override ang pamamaraang ito sa isang descendant na klase. Sa katunayan, kung lumilikha ka ng isang mahalaga o pangkalahatang klase ng uri Order, Tradeo Employee, palaging i-override ang equals , hashCode , compareTo at toStringmga pamamaraan sa Java. Bilang default, ang pagpapatupad toStringay gumagawa ng output sa form , package.class@hashCodehalimbawa para sa aming halimbawa ang paraan ng klase ay magpi-print ng pagsubok.Country@18e2b22 kung saan ang 18e2b22 ay ang hash code ng object sa hexadecimal, kung tatawagan mo ang hashCode method ito ay magbabalik ng 260943370 na siyang decimal na katumbas ng 18e2b22. Ang impormasyong ito ay hindi partikular na kapaki-pakinabang kapag naghahanap ng problema. Tingnan natin ang isang halimbawa sa totoong buhay kung saan kailangan mong maghanap ng problema sa iyong koneksyon sa network, kung sakaling gusto mong malaman kung aling host at port ang sinusubukang kumonekta ng iyong system at kung ipi-print o lamang ang default na impormasyon, ito ay imposibleng isipin ang tunay na problema, ngunit sa isang overridden na pagpapatupad maaari silang magbigay ng kapaki-pakinabang na impormasyon tulad ng hostname at numero ng port. Sa Java tutorial na ito, magbibigay kami ng ilang mga tip sa paraan ng pag-override sa mga halimbawa ng code. toString()toString()CountrySocketServerSockettoStringtoStringtoString

Paano i-override ang paraan ng toString sa Java:

Ini-print ang na-format na petsa (ibig sabihin, araw/buwan/taon) sa halip na ang raw na halaga. Ito ay isang napaka-kapaki-pakinabang na pahiwatig kapag na-override ang isang Java method toString. Ang regular toString()na klase java.util.Dateay hindi naglalabas ng na-format na petsa at may kasamang maraming detalye na hindi palaging kinakailangan. Kung gumagamit ka ng bahagyang DateFormat i.e. dd-MM-yy sa iyong application, kung gayon ay talagang gusto mong makita ang format na ito sa halip na ang default. Ang IDE ay hindi karaniwang bumubuo ng naka-format na output Dateat ito ay isang bagay na kakailanganin mong gawin sa iyong sarili, ngunit sulit ito. Basahin ang Paano Mag-print ng Petsa sa ddMMyy Format sa Java para sa mga detalye sa pag-format Datesa Java. Maaari mo ring gamitin ang SimpleDataFormat class o ang Joda Date time library para dito.

Pagdodokumento ng toString format

Kung ang iyong pamamaraan toString()ay hindi naglalabas ng data bilang field=value, magandang ideya na idokumento ang output format toString, lalo na para sa mahahalagang bagay tulad ng Employee o Student. Halimbawa, kung ang isang paraan ng toString()klase Работник(Employee)ay nag-print ng " John-101-Sales-9846387321 " kung gayon ang isang magandang kasanayan ay ang tukuyin ang format bilang "name-id-department-contact", ngunit sa parehong oras ay huwag payagan ang kliyente na makakuha impormasyon mula sa pamamaraan toString(), dapat kang palaging magbigay ng naaangkop na mga pamamaraan para sa pagkuha ng data, tulad ng getName(), getId(), getContact()at iba pa, dahil ang impormasyong nakuha mula toString()sa representasyon ng bagay ay marupok at madaling kapitan ng pagkakamali, kaya ang kliyente ay dapat palaging may malinis na landas upang makuha ang impormasyon.

Gamitin ang StringBuilder upang mabuo ang output ng toString()

Kung nagsusulat ka ng code para sa isang pamamaraan toString()sa Java, pagkatapos ay gamitin ang StringBuilder upang magdagdag ng mga indibidwal na katangian. Kung ikaw ay gumagamit ng isang IDE tulad ng Eclipse , Netbeans o IntelliJ pagkatapos ay ang paggamit StringBuilderng at pamamaraan append()sa halip na ang + operator upang bumuo toStringay din ang paraan upang pumunta. Bilang default, parehong bumubuo ang Eclipse at Netbeans toStringgamit ang concatenation operator.

Gamit ang @Override annotation

Ang paggamit @Overrideng paraan ng pag-override sa Java ay isa sa mga pinakamahusay na kasanayan sa wika. Ngunit ang pahiwatig na ito ay hindi kasinghalaga sa kaso ng pag-override sa equals()at mga pamamaraan compareTo(), dahil ang overloading sa halip na i-override ay maaaring lumikha ng mas banayad na mga error na mahirap kalkulahin. Sa anumang kaso, mas mainam na gamitin ang anotasyon @Overrride.

Pagpi-print ng mga nilalaman ng isang array sa halip na pag-print ng array object

Ang array ay isang object sa Java ngunit hindi nito na-override ang isang paraan toStringat kapag nag-print ka ng array ang default na format ng output ay hindi masyadong kapaki-pakinabang dahil gusto naming makita ang mga nilalaman ng array. Sa pamamagitan ng paraan, ito ay isa pang dahilan kung bakit ang char[] array ay mas gusto kaysa String para sa pag-iimbak ng sensitibong data tulad ng isang password. Maglaan ng oras upang tingnan kung ang pag-print ng mga nilalaman ng isang array ay nakakatulong sa iyong mga kliyente o hindi, at kung ito ay makatuwiran, pagkatapos ay i-print ang mga nilalaman ng array sa halip na ang bagay mismo. Para sa mga kadahilanan ng pagganap, mas mainam na gamitin Collectionang tulad ArrayListo HashSet sa halip Arrayupang mag-imbak ng iba pang mga bagay.

Mga tip sa bonus

Ang ilan pang bonus na tip sa paraan ng pag-override toStringsa Java.
  1. I-print ang output toStringsa maraming linya o sa isa batay sa haba nito.

  2. Isama ang ganap na kwalipikadong mga pangalan ng klase sa representasyon toString, sa madaling salita package.classupang maiwasan ang anumang hindi pagkakaunawaan.

  3. Maaari mong laktawan ang mga null na halaga o ipakita ang mga ito, ngunit mas mahusay na ipakita ang mga ito. Minsan ay kapaki-pakinabang ang mga ito dahil ipinapakita nila kung aling field ang naroroon nullsa ilang insidente, halimbawa NullPointerException .

  4. Gumamit ng format ng key-value, halimbawa member.name=member.value, sinusuportahan ito ng karamihan sa mga IDE.

  5. Isama ang mga minanang miyembro kung sa tingin mo ay dapat silang magbigay ng kinakailangang impormasyon sa nagmanang klase.

  6. Minsan ang isang bagay ay naglalaman ng maraming opsyonal at kinakailangang mga parameter, tulad ng ipinakita namin sa aming halimbawa ng template ng Tagabuo , kapag halos imposibleng i-print ang lahat ng mga field, sa kasong ito maaari naming i-print lamang ang mga kinakailangang field, lalo na dahil mayroon kaming mga opsyonal.

Mga komento
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION