JavaRush /Java блогы /Random-KK /Java тіліндегі toString() әдісін қайта анықтау бойынша 10...
Ku6ep
Деңгей

Java тіліндегі toString() әдісін қайта анықтау бойынша 10 кеңес (1-бөлім)

Топта жарияланған
Java тіліндегі toString() әдісін қайта анықтау бойынша 10 кеңес - ToStringBuilder Netbeans Eclipse Java тіліндегі toString() әдісін қайта анықтау бойынша 10 кеңес (1-бөлім) - 1

Java toString әдісі

toStringObjectJava тіліндегі әдіс адам оқи алатын нысанда ( ) нысан туралы анық және жеткілікті ақпаратты беру үшін қолданылады . Тиісті әдісті қайта анықтау құнды және маңызды ақпаратты беру арқылы Java бағдарламасын тіркеуге және жөндеугеtoString көмектеседі . Ол сыныпта анықталғандықтан және оның әдепкі орындалуы көп ақпарат бермейтіндіктен, бұл әдісті ұрпақ класында қайта анықтау әрқашан ең жақсы тәжірибе болып табылады. Шын мәнінде, егер сіз маңызды немесе жалпы түрдегі сыныпты жасап жатсаңыз немесе Java тіліндегі тең мәндерді , hashCode , compareTo және әдістерді әрқашан қайта анықтаңыз . Әдепкі бойынша іске асыру пішімінде нәтижені шығарады , мысалы, біздің мысал үшін сынып әдісі test.Country@18e2b22 басып шығарады, мұнда 18e2b22 - он алтылық сандағы нысанның хэш codeы, егер hashCode әдісін шақырсаңыз, ол 260943370 мәнін қайтарады. 18e2b22 ондық эквиваленті. Бұл ақпарат проблеманы іздеу кезінде әсіресе пайдалы емес. Жүйенің қандай хост пен портқа қосылуға тырысып жатқанын білгіңіз келсе және әдепкі ақпаратты басып шығарса немесе тек қана желілік қосылымда ақауды табу керек болатын нақты мысалды қарастырайық. нақты мәселені елестету мүмкін емес, бірақ қайта анықталған іске асыру арқылы олар хост атауы және порт нөмірі сияқты пайдалы ақпаратты бере алады. Бұл Java оқулығында біз code мысалдарымен әдісті қайта анықтау бойынша бірнеше кеңестер береміз. toString()java.lang.ObjectOrderTradeEmployeetoStringtoStringpackage.class@hashCodetoString()toString()CountrySocketServerSockettoStringtoStringtoString

Java-да toString әдісін қалай қайта анықтауға болады:

Шикі мәннің орнына пішімделген күнді (яғни күн/ай/жыл) басып шығарады. Бұл Java әдісін қайта анықтау кезінде өте пайдалы кеңес toString. Кәдімгі toString()сынып java.util.Dateпішімделген күнді шығармайды және әрқашан қажет емес көптеген мәліметтерді қамтиды. Егер сіз ішінара DateFormat қолдансаңыз , яғни. Қолданбаңызда dd-MM-yy болса, әдепкі емес, осы пішімді көргіңіз келеді. IDE әдетте пішімделген шығысты жасамайды Dateжәне бұл өзіңіз жасауыңыз керек нәрсе, бірақ бұл тұрарлық. Java тілінде пішімдеу туралы мәліметтер алу үшін Java тілінде ddMMyy пішімінде күнді басып шығару жолын оқыңыз Date. Бұл үшін SimpleDataFormat сыныбын немесе Joda Date уақыт кітапханасын пайдалануға болады .

toString пішімін құжаттау

Егер сіздің әдісіңіз toString()деректерді өріс=мән ретінде шығармаса, шығыс пішімін құжаттау жақсы идея toString, әсіресе Қызметкер немесе Студент сияқты маңызды нысандар үшін. Мысалы, егер toString()сынып әдісі Работник(Employee)" John-101-Sales-9846387321 " басып шығарса, онда пішімді "аты-идентификаторы-департамент-контакт" ретінде көрсету жақсы тәжірибе болады, бірақ сонымен бірге клиентке әдістен ақпаратты алу үшін, сіз әрқашан toString()деректерді шығарып алудың сәйкес әдістерін қамтамасыз етуіңіз керек, мысалы getName(), getId(), getContact()және т. toString()ақпарат.

toString() шығысын жасау үшін StringBuilder пайдаланыңыз.

toString()Java тілінде әдіс үшін code жазып жатсаңыз , жеке атрибуттарды қосу үшін StringBuilder пайдаланыңыз. Eclipse , Netbeans немесе IntelliJ сияқты IDE қолданып жатсаңыз , жазу үшін + операторының орнына StringBuilderand әдісін пайдалану да баратын жол болып табылады. Әдепкі бойынша, Eclipse және Netbeans екеуі де біріктіру операторымен жасайды. append()toStringtoString

@Override annotationсын пайдалану

Java тілінде әдісті қайта анықтауды пайдалану @Overrideтілдегі ең жақсы тәжірибелердің бірі болып табылады. equals()Бірақ бұл кеңес және әдістерін қайта белгілеу жағдайында болатындай маңызды емес compareTo(), өйткені қайта анықтаудың орнына шамадан тыс жүктеу есептеу қиынырақ нәзік қателерді тудыруы мүмкін. Кез келген жағдайда annotationны қолданған дұрыс @Overrride.

Жиым нысанын басып шығарудың орнына массив мазмұнын басып шығару

Массив Java тіліндегі нысан болып табылады, бірақ ол әдісті қайта анықтамайды toStringжәне массивді басып шығарған кезде әдепкі шығыс пішімі өте пайдалы емес, өйткені біз массивтің мазмұнын көргіміз келеді. Айтпақшы, бұл char[] массивінің құпия сөз сияқты құпия деректерді сақтау үшін String-тен артық болуының тағы бір себебі. Массив мазмұнын басып шығару клиенттеріңізге көмектесе ме, жоқ па, соны қарастыруға уақыт бөліңіз, егер мағынасы болса, нысанның орнына массивтің мазмұнын басып шығарыңыз. Өнімділік себептері бойынша басқа нысандарды сақтау үшін оның орнына Collectionосындай ArrayListнемесе HashSet пайдаланған жөн .Array

Бонустық кеңестер

toStringJava тіліндегі әдісті қайта анықтау бойынша тағы бірнеше бонустық кеңестер .
  1. toStringҰзындығына қарай бірнеше жолға немесе бір жолға басып шығару .

  2. Кез келген түсінбеушілікке жол бермеу үшін toString, басқаша айтқанда, толық жарамды сынып атауларын ұсынуға қосыңыз .package.class

  3. Нөлдік мәндерді өткізіп жіберуге немесе оларды көрсетуге болады, бірақ оларды көрсеткен дұрыс. Кейде олар пайдалы, себебі олар nullкейбір оқиға кезінде қай өріс бар екенін көрсетеді, мысалы, NullPointerException .

  4. Кілт-мән пішімін пайдаланыңыз, мысалы member.name=member.value, IDE көпшілігі осыны қолдайды.

  5. Егер олар мұрагер сыныпқа қажетті ақпаратты беруі керек деп ойласаңыз, мұраланған мүшелерді қосыңыз.

  6. Кейде нысанда көптеген қосымша және қажетті параметрлер болады, мұны біз Builder үлгісінің мысалында көрсеткендей , барлық өрістерді басып шығару мүмкін емес дерлік, бұл жағдайда біз тек қажетті өрістерді басып шығара аламыз, әсіресе бізде қосымшалар болғандықтан.

Пікірлер
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION