Java toString طريقو
toString
جاوا ۾ طريقو استعمال ڪيو ويندو آهي واضح ۽ ڪافي معلومات مهيا ڪرڻ لاءِ ڪنهن شئي ( Object
) کي انساني پڙهڻ جي قابل فارم ۾. مناسب طريقو اوور رائيڊنگ جاوا پروگرام کي لاگ ان ۽ ڊيبگ ڪرڻ ۾toString
مدد ڪري سگھي ٿي قيمتي ۽ اهم معلومات مهيا ڪندي. جيئن ته اها هڪ طبقي ۾ بيان ڪئي وئي آهي ۽ ان جي ڊفالٽ عمل درآمد گهڻو معلومات مهيا نه ڪندو آهي، اهو هميشه بهترين عمل آهي ته هن طريقي کي اولاد واري طبقي ۾ ختم ڪرڻ لاء. حقيقت ۾، جيڪڏهن توهان هڪ اهم يا عام طبقي جو قسم ٺاهي رهيا آهيو ، يا هميشه اووررائيڊ برابر ، hashCode ، compareTo ۽ جاوا ۾ طريقا. ڊفالٽ طور تي عملدرآمد فارم ۾ آئوٽ پٽ پيدا ڪري ٿو ، مثال طور اسان جي مثال لاءِ ڪلاس ميٿڊ پرنٽ ڪندو test.Country@18e2b22 جتي 18e2b22 هيڪسڊيڪل ۾ اعتراض جو هيش ڪوڊ آهي، جيڪڏهن توهان هيش ڪوڊ ميٿڊ کي ڪال ڪندا ته اهو 260943370 موٽندو جيڪو آهي . ڊيسيمل 18e2b22 جي برابر. هي معلومات خاص طور تي مفيد نه آهي جڏهن ڪنهن مسئلي جي ڳولا ڪريو. اچو ته هڪ حقيقي زندگي جو مثال ڏسون جتي توهان کي پنهنجي نيٽ ورڪ ڪنيڪشن ۾ مسئلو ڳولڻ جي ضرورت آهي، ان صورت ۾ جڏهن توهان اهو ڄاڻڻ چاهيو ٿا ته توهان جو سسٽم ڪهڙي ميزبان ۽ پورٽ سان ڳنڍڻ جي ڪوشش ڪري رهيو آهي ۽ جيڪڏهن يا صرف ڊفالٽ معلومات کي پرنٽ ڪري ، اهو ٿيندو. حقيقي مسئلو تصور ڪرڻ ناممڪن آهي، پر اوور رائڊ ٿيل عمل سان اهي مفيد معلومات مهيا ڪري سگھن ٿا جهڙوڪ ميزبان نالو ۽ پورٽ نمبر. هن جاوا ٽيوٽوريل ۾ اسان ڪوڊ جي مثالن سان اوور رائڊنگ جي طريقي تي ڪجهه صلاحون ڏينداسين . toString()
java.lang.Object
Order
Trade
Employee
toString
toString
package.class@hashCode
toString()
toString()
Country
Socket
ServerSocket
toString
toString
toString
جاوا ۾ ToString طريقي کي ڪيئن ختم ڪجي:
خام قدر جي بدران فارميٽ ٿيل تاريخ (يعني ڏينهن/مهينو/سال) پرنٽ ڪريو. اهو هڪ تمام مفيد اشارو آهي جڏهن هڪ جاوا طريقي کي ختم ڪيو وڃيtoString
. باقاعده toString()
طبقو java.util.Date
فارميٽ ٿيل تاريخ کي نٿو ڏئي ۽ ان ۾ ڪيترائي تفصيل شامل آهن جيڪي هميشه گهربل نه هوندا آهن. جيڪڏھن توھان استعمال ڪري رھيا آھيو جزوي DateFormat يعني dd-MM-yy توهان جي ايپليڪيشن ۾، پوء توهان ضرور هن فارميٽ کي ڏسڻ چاهيو ٿا ڊفالٽ جي بدران. IDE عام طور تي فارميٽ ٿيل ٻاھر پيدا نٿو ڪري Date
۽ اھو ڪجھھ آھي جيڪو توھان کي پاڻ کي ڪرڻو پوندو، پر اھو ان جي لائق آھي. جاوا ۾ فارميٽنگ جي تفصيل لاءِ جاوا ۾ ddMMyy فارميٽ ۾ تاريخ ڪيئن پرنٽ ڪجي پڙهو Date
. توھان پڻ استعمال ڪري سگھو ٿا SimpleDataFormat ڪلاس يا جودا تاريخ وقت لائبريري ھن لاءِ.
toString فارميٽ کي دستاويز ڪرڻ
جيڪڏهن توهان جو طريقوtoString()
ڊيٽا آئوٽ نٿو ڪري field=value، پوءِ اهو سٺو خيال آهي ته آئوٽ پٽ فارميٽ کي دستاويز ڪرڻ toString
، خاص طور تي اهم شيون جهڙوڪ ملازم يا شاگرد لاءِ. مثال طور، جيڪڏهن هڪ toString()
ڪلاس جو طريقو Работник(Employee)
پرنٽ ڪري ٿو " John-101-Sales-9846387321 " ته پوءِ هڪ سٺو عمل اهو هوندو ته فارميٽ کي "name-id-department-contact" طور بيان ڪيو وڃي، پر ساڳئي وقت ڪلائنٽ کي حاصل ڪرڻ جي اجازت نه ڏيو. معلومات جي طريقي سان toString()
، توهان کي هميشه ڊيٽا کي ٻيهر حاصل ڪرڻ لاء مناسب طريقا مهيا ڪرڻ گهرجي، جهڙوڪ getName()
,، وغيره، ڇاڪاڻ ته اعتراض جي نمائندگي مان حاصل ڪيل معلومات نازڪ ۽ غلطي جو شڪار آهي، تنهنڪري ڪلائنٽ getId()
کي هميشه حاصل ڪرڻ لاء صاف رستو هجڻ گهرجي. ڄاڻ. getContact()
toString()
استعمال ڪريو StringBuilder toString () جي پيداوار کي ترتيب ڏيڻ لاء
جيڪڏهن توهانtoString()
جاوا ۾ هڪ طريقي لاء ڪوڊ لکي رهيا آهيو، پوء انفرادي خاصيتون شامل ڪرڻ لاء StringBuilder استعمال ڪريو . جيڪڏهن توهان هڪ IDE استعمال ڪري رهيا آهيو جهڙوڪ Eclipse , Netbeans يا IntelliJ ته پوءِ + آپريٽر جي بدران StringBuilder
۽ طريقو استعمال ڪرڻ پڻ وڃڻ جو طريقو آهي. ڊفالٽ طور، ٻئي Eclipse ۽ Netbeans ڪنٽينشن آپريٽر سان ٺاهيندا آهن. append()
toString
toString
@Override تشريح استعمال ڪندي
جاوا ۾ اوور رائڊنگ جو طريقو استعمال ڪرڻ@Override
ٻوليءَ جي بهترين طريقن مان هڪ آهي. equals()
پر هي اشارو ايترو اهم نه آهي جيترو اوور رائيڊنگ ۽ طريقن جي صورت ۾ هوندو compareTo()
، ڇو ته اوور رائيڊنگ بدران اوور لوڊ ڪرڻ سان وڌيڪ نفيس غلطيون پيدا ٿي سگهن ٿيون جن جو اندازو لڳائڻ مشڪل آهي. ڪنهن به صورت ۾، ان جي تشريح استعمال ڪرڻ بهتر آهي @Overrride
.
صف جي مواد کي پرنٽ ڪرڻ بجاءِ آري اعتراض کي پرنٽ ڪرڻ
جاوا ۾ هڪ آري هڪ اعتراض آهي پر اهو ڪنهن طريقي کي اوور رائڊ نٿو ڪريtoString
۽ جڏهن توهان هڪ ايري کي پرنٽ ڪندا آهيو ته ڊفالٽ آئوٽ پٽ فارميٽ ايترو ڪارائتو نه هوندو آهي جيئن اسان صفن جي مواد کي ڏسڻ چاهيون ٿا. رستي ۾، اهو هڪ ٻيو سبب آهي ڇو ته char[] array کي ترجيح ڏني وئي آهي String لاءِ حساس ڊيٽا جهڙوڪ پاسورڊ. اهو ڏسڻ لاءِ وقت وٺو ته ڇا هڪ صف جي مواد کي پرنٽ ڪرڻ سان توهان جي گراهڪن جي مدد ٿئي ٿي يا نه، ۽ جيڪڏهن اهو سمجهه ۾ اچي ٿو، ته پوءِ خود اعتراض جي بدران صف جي مواد کي پرنٽ ڪريو. ڪارڪردگي جي سببن لاء، ٻين شين کي ذخيرو ڪرڻ جي بدران Collection
اهڙي ArrayList
يا HashSet استعمال ڪرڻ بهتر آهي Array
.
بونس ٽوٽڪا
جاوا ۾ اوور رائڊنگ جي طريقي تي ڪجھ وڌيڪ بونس ٽوٽڪاtoString
.
-
پرنٽ آئوٽ
toString
ڪيترن ئي لائينن ۾ يا ھڪڙي ۾ ان جي ڊيگهه جي بنياد تي. -
نمائندگي ۾ مڪمل طور تي قابل ڪلاس جا نالا شامل ڪريو
toString
، ٻين لفظن ۾package.class
ڪنهن به غلط فهمي کان بچڻ لاء. -
توھان null قدرن کي ڇڏي سگھو ٿا يا انھن کي ڏيکاريو، پر اھو بھتر آھي انھن کي ڏيکارڻ. ڪڏهن ڪڏهن اهي ڪارآمد هوندا آهن ڇاڪاڻ ته اهي ڏيکارين ٿا ته ڪهڙي فيلڊ
null
ڪنهن واقعي دوران موجود آهي، مثال طور NullPointerException . -
هڪ اهم-قدر فارميٽ استعمال ڪريو، مثال طور
member.name=member.value
، اڪثر IDEs هن جي حمايت ڪن ٿا. -
ورثي ۾ مليل ميمبرن کي شامل ڪريو جيڪڏھن توھان سمجھو ٿا ته انھن کي وراثت واري طبقي کي ضروري معلومات مهيا ڪرڻ گھرجي.
-
ڪڏهن ڪڏهن هڪ شئي ۾ ڪيترائي اختياري ۽ گهربل پيرا ميٽر هوندا آهن، جيئن اسان پنهنجي بلڊر ٽيمپليٽ مثال ۾ ڏيکاريو آهي، جڏهن ته سڀني شعبن کي پرنٽ ڪرڻ لڳ ڀڳ ناممڪن هوندو آهي، ان صورت ۾ اسان صرف گهربل فيلڊز کي پرنٽ ڪري سگهون ٿا، خاص ڪري جڏهن اسان وٽ اختياري آهن.
GO TO FULL VERSION