Java toString ыкмасы
toString
Object
Java методу адам окуй турган формада an object ( ) жөнүндө так жана жетиштүү маалымат берүү үчүн колдонулат . Туура ыкманы жокко чыгаруу баалуу жана маанилүү маалыматты берүү менен Java программасын жазууга жана мүчүлүштүктөрдү оңдоогоtoString
жардам берет . Ал класста аныкталгандыктан жана анын демейки ишке ашырылышы көп маалымат бербегендиктен, бул ыкманы тукум класста жокко чыгаруу дайыма эң жакшы практика болуп саналат. Чындыгында, эгер сиз маанилүү же жалпы классты түзүп жатсаңыз , же , ар дайым барабарларды жокко чыгарыңыз , hashCode , compareTo жана Java'дагы методдор. Демейки боюнча ишке ашыруу формасында жыйынтык чыгарат , мисалы, биздин мисал үчүн класс ыкмасы test.Country@18e2b22 басып чыгарат, мында 18e2b22 - он алтылык сандагы an objectтин хэш codeу, эгер сиз hashCode ыкмасын чакырсаңыз, ал 260943370 кайтарып берет, бул 18e2b22 ондук эквиваленти. Бул маалымат көйгөйдү издөөдө өзгөчө пайдалуу эмес. Келгиле, реалдуу турмуштук мисалды карап көрөлү, анда тармак туташууңузда көйгөйдү табышыңыз керек болгон учурда, эгер сиз тутумуңуз кайсы хост менен портко туташууга аракет кылып жатканын билгиңиз келсе жана демейки маалыматты басып чыгарса , ал чыныгы көйгөйдү элестетүү мүмкүн эмес, бирок жокко чыгарылган ишке ашыруу менен алар хост аты жана порт номери сыяктуу пайдалуу маалыматты бере алышат. Бул Java окуу куралында биз code мисалдары менен ыкманы жокко чыгаруу боюнча кээ бир кеңештерди беребиз .toString()
java.lang.Object
Order
Trade
Employee
toString
toString
package.class@hashCode
toString()
toString()
Country
Socket
ServerSocket
toString
toString
toString
Java'да toString ыкмасын кантип жокко чыгарса болот:
Чийки маанинин ордуна форматталган датаны (б.а. күн/ай/жыл) басып чыгарыңыз. Бул Java ыкмасын жокко чыгарууда абдан пайдалуу ишаратtoString
. Кадимки toString()
класс java.util.Date
форматталган датаны чыгарbyte жана дайыма эле керек боло бербеген көптөгөн деталдарды камтыйт. Эгер сиз жарым-жартылай DateFormat колдонуп жатсаңыз , б.а. Колдонмоңузда gg-MM-yy, анда сиз демейки форматтын ордуна бул форматты көргүңүз келет. IDE адатта форматталган чыгарууну жаратпайт Date
жана бул сиз өзүңүз жасашыңыз керек болгон нерсе, бирок бул татыктуу. Java'да форматтоо боюнча чоо-жайын билүү үчүн Java'да ddMMyy форматында датаны кантип басып чыгаруу керек дегенди окуңуз Date
. Бул үчүн SimpleDataFormat классын же Joda Date убакыт китепканасын да колдоно аласыз .
toString форматын documentтештирүү
Эгерде сиздин ыкмаңызtoString()
талаа=маани катары берorштерди чыгарбаса, анда чыгуу форматын documentтештирүү жакшы идея toString
, айрыкча Кызматкер же Студент сыяктуу маанилүү an objectтер үчүн. Мисалы, toString()
класстык метод Работник(Employee)
" John-101-Sales-9846387321 " басып чыгарса, анда форматты "аты-идентификатору-бөлүм-байланыш" катары көрсөтүү жакшы практика болмок, бирок ошол эле учурда кардар алууга уруксат бербейт. ыкмадан маалымат алуу үчүн toString()
, сиз ар дайым маалыматтарды алуу үчүн тиешелүү ыкмаларды беришиңиз керек, мисалы , getName()
, getId()
ж getContact()
. toString()
маалымат.
toString() чыгарууну түзүү үчүн StringBuilderди колдонуңуз
toString()
Эгер сиз Java'да метод үчүн code жазып жатсаңыз , анда жеке атрибуттарды кошуу үчүн StringBuilder колдонуңуз. Эгер сиз Eclipse , Netbeans же IntelliJ сыяктуу IDE колдонуп жатсаңыз , анда түзүү үчүн + операторунун ордуна StringBuilder
жана ыкмасын колдонуңуз . Демейки боюнча, Eclipse жана Netbeans экөө тең бириктирүү оператору менен түзүшөт. append()
toString
toString
@Override annotationсын колдонуу
Java'да методду жокко чыгаруу@Override
тилдеги эң мыкты тажрыйбалардын бири. equals()
Бирок бул ишарат жана ыкмаларын жокко чыгарууда болгондой маанилүү эмес compareTo()
, анткени жокко чыгаруунун ордуна ашыкча жүктөө эсептөө кыйыныраак болгон тымызын каталарды жаратышы мүмкүн. Кандай болбосун, annotationны колдонуу жакшы @Overrride
.
Массив an objectин басып чыгаруунун ордуна массивдин мазмунун басып чыгаруу
Массив Java тorндеги an object, бирок ал методду жокко чыгарbytetoString
жана массивди басып чыгарганда демейки чыгаруу форматы анча пайдалуу эмес, анткени массивдин мазмунун көргүбүз келет. Айтмакчы, бул сырсөз сыяктуу купуя маалыматтарды сактоо үчүн Char[] массивинин Stringге артыкчылыктуу экендигинин дагы бир себеби. Массивдин мазмунун басып чыгаруу кардарларыңызга жардам береби же жокпу, карап чыгууга убакыт бөлүңүз, эгер мааниси болсо, an objectтин ордуна массивдин мазмунун басып чыгарыңыз. Өндүрүштүк себептерден улам, башка an objectтерди сактоо үчүн анын ордуна Collection
ушундай ArrayList
же HashSet колдонуу артык .Array
Бонус кеңештери
toString
Java'да ыкмаларды жокко чыгаруу боюнча дагы бир нече бонустук кеңештер .
-
toString
Узундугуна жараша бир нече сапта же бир сапта басып чыгарыңыз . -
Ар кандай түшүнбөстүктөрдү болтурбоо үчүн
toString
, өкүлчүлүккө толук квалификациялуу класс аттарын кошуңуз .package.class
-
Сиз нөл маанилерди өткөрүп жиберсеңиз же аларды көрсөтө аласыз, бирок аларды көрсөткөнүңүз жакшы. Кээде алар пайдалуу, анткени алар
null
кандайдыр бир окуя учурунда кайсы талаа бар экенин көрсөтөт, мисалы NullPointerException . -
Ачкыч-маани форматын колдонуңуз, мисалы
member.name=member.value
, көпчүлүк IDE муну колдойт. -
Эгер алар мурастоочу класска керектүү маалыматты бериши керек деп ойлосоңуз, мурасталган мүчөлөрдү кошуңуз.
-
Кээде an object көптөгөн кошумча жана талап кылынган параметрлерди камтыйт, биз Builder үлгүсүндөгү мисалда көрсөткөндөй , бардык талааларды басып чыгаруу дээрлик мүмкүн болбогондо, бул учурда биз талап кылынган талааларды гана басып чыгара алабыз, айрыкча бизде кошумчалары бар.
GO TO FULL VERSION