JavaRush /Java Blogu /Random-AZ /Java-da toString() metodunu ləğv etmək üçün 10 məsləhət (...
Ku6ep
Səviyyə

Java-da toString() metodunu ləğv etmək üçün 10 məsləhət (1-ci hissə)

Qrupda dərc edilmişdir
Java-da toString() metodunu ləğv etmək üçün 10 məsləhət - ToStringBuilder Netbeans Eclipse Java-da toString() metodunu ləğv etmək üçün 10 məsləhət (1-ci hissə) - 1

Java toString metodu

toStringJava-da metod obyekt ( Object) haqqında insan tərəfindən oxuna bilən formada aydın və kifayət qədər məlumat vermək üçün istifadə olunur. Düzgün metodun üstünlüyü dəyərli və vacib məlumatları təmin etməklə Java proqramının qeydinəsazlanmasınatoString kömək edə bilər . O, sinifdə müəyyən edildiyindən və onun standart tətbiqi çox məlumat vermədiyindən, nəsil sinfində bu metodu ləğv etmək həmişə ən yaxşı təcrübədir. Əslində, əgər siz mühüm və ya ümumi tipli sinif yaradırsınızsa və ya , həmişə bərabərləri , hashCode , compareTo və Java-da metodları ləğv edin. Defolt olaraq, həyata keçirmə formada nəticə çıxarır , məsələn, bizim nümunəmiz üçün sinif metodu test çap edəcək. Ölkə@18e2b22 burada 18e2b22 onaltılıq sistemdə obyektin hash kodudur, əgər hashCode metodunu çağırsanız, o, 260943370 qaytaracaq. 18e2b22-nin onluq ekvivalenti. Problem axtararkən bu məlumat xüsusilə faydalı deyil. Sisteminizin hansı hosta və porta qoşulmağa çalışdığını bilmək istəsəniz və ya yalnız standart məlumatları çap edərsə , şəbəkə bağlantınızda problem tapmaq lazım olan real həyat nümunəsinə baxaq. əsl problemi təsəvvür etmək qeyri-mümkündür, lakin ləğv edilmiş tətbiqetmə ilə onlar host adı və port nömrəsi kimi faydalı məlumatları təmin edə bilərlər. Bu Java dərsliyində kod nümunələri ilə metodu ləğv etmək üçün bəzi məsləhətlər verəcəyik .toString()java.lang.ObjectOrderTradeEmployeetoStringtoStringpackage.class@hashCodetoString()toString()CountrySocketServerSockettoStringtoStringtoString

Java-da toString metodunu necə ləğv etmək olar:

Xam dəyər əvəzinə formatlanmış tarixi (yəni gün/ay/il) çap edin. Bu, Java metodunu ləğv edərkən çox faydalı bir işarədir toString. Adi toString()sinif java.util.Dateformatlaşdırılmış tarix çıxarmır və həmişə lazım olmayan bir çox detalları ehtiva edir. Əgər qismən DateFormat istifadə edirsinizsə, yəni. Tətbiqinizdə gg-MM-yy, onda siz mütləq standart əvəzinə bu formatı görmək istərdiniz. IDE adətən formatlaşdırılmış çıxış yaratmır Datevə bu, özünüz etməli olduğunuz bir şeydir, lakin buna dəyər. Java-da formatlaşdırma ilə bağlı təfərrüatlar üçün Java-da ddMMyy Formatında Tarixi Necə Çap etmək olar bölməsini oxuyun Date. Bunun üçün SimpleDataFormat sinifindən və ya Joda Date vaxt kitabxanasından da istifadə edə bilərsiniz .

toString formatının sənədləşdirilməsi

Metodunuz məlumatı sahə=dəyər kimi çıxarmırsa, xüsusilə İşçi və ya Tələbə kimi mühüm obyektlər üçün toString()çıxış formatını sənədləşdirmək yaxşı fikirdir . toStringMəsələn, bir toString()sinif metodu Работник(Employee)" John-101-Sales-9846387321 " çap edirsə, formatı "ad-id-departament-əlaqə" kimi təyin etmək yaxşı təcrübə olardı, lakin eyni zamanda müştərinin əldə etməsinə icazə verməyin. metoddan məlumat toString()əldə etmək üçün siz həmişə məlumatların əldə edilməsi üçün müvafiq metodları təqdim etməlisiniz, məsələn getName(), getId(), getContact()və s., çünki toString()obyekt təqdimatından əldə edilən məlumat kövrək və xətaya meyilli olduğundan, müştəri həmişə məlumat əldə etmək üçün təmiz yola malik olmalıdır. məlumat.

toString() çıxışını yaratmaq üçün StringBuilder istifadə edin

toString()Əgər Java-da metod üçün kod yazırsanız , fərdi atributlar əlavə etmək üçün StringBuilder- dən istifadə edin . Eclipse , Netbeans və ya IntelliJ kimi bir IDE istifadə edirsinizsə , o zaman tərtib etmək üçün + operatoru əvəzinə StringBuildervə metodundan istifadə etmək də yoldur. Varsayılan olaraq, həm Eclipse, həm də Netbeans birləşmə operatoru ilə yaradır. append()toStringtoString

@Override annotasiyasından istifadə

Java-da metodu ləğv etmək @Overridedildə ən yaxşı təcrübələrdən biridir. equals()Lakin bu işarə və metodlarının ləğv edilməsi vəziyyətində olduğu qədər vacib deyil compareTo(), çünki ləğv etmək əvəzinə həddən artıq yükləmə hesablanması çətin olan daha incə xətalar yarada bilər. Hər halda, annotasiyadan istifadə etmək daha yaxşıdır @Overrride.

Massiv obyektini çap etmək əvəzinə massivin məzmununu çap etmək

Massiv Java-da bir obyektdir, lakin o, metodu ləğv etmir toStringvə siz massivi çap edərkən standart çıxış formatı çox faydalı deyil, çünki biz massivin məzmununu görmək istəyirik. Yeri gəlmişkən, parol kimi həssas məlumatların saxlanması üçün char[] massivinin String-dən üstün olmasının başqa səbəbi də budur. Massivin məzmununu çap etməyin müştərilərinizə kömək edib-etməməsinə baxmaq üçün vaxt ayırın və məntiqlidirsə, obyektin özü əvəzinə massivin məzmununu çap edin. Performans baxımından, digər obyektləri saxlamaq üçün əvəzinə Collectionbelə ArrayListvə ya HashSet istifadə etmək üstünlük təşkil edir.Array

Bonus məsləhətləri

Java-da metodun üstünlüyü ilə bağlı daha bir neçə bonus məsləhətləri toString.
  1. toStringÇıxışı uzunluğuna əsasən bir neçə sətirdə və ya birində çap edin .

  2. Hər hansı anlaşılmazlığın qarşısını almaq üçün təqdimata tam uyğun sinif adlarını daxil toStringedin package.class.

  3. Siz null dəyərləri atlaya və ya göstərə bilərsiniz, lakin onları göstərmək daha yaxşıdır. Bəzən onlar faydalı olur, çünki bəzi insident zamanı hansı sahənin mövcud olduğunu göstərirlər null, məsələn NullPointerException .

  4. Açar-dəyər formatından istifadə edin, məsələn member.name=member.value, əksər IDE-lər bunu dəstəkləyir.

  5. Əgər miras qalan sinfə lazımi məlumatları təqdim etməli olduqlarını düşünürsünüzsə, miras qalmış üzvləri də daxil edin.

  6. Bəzən obyekt çoxlu isteğe bağlı və tələb olunan parametrləri ehtiva edir, bunu bizim Builder şablon nümunəmizdə göstərdiyimiz kimi , bütün sahələri çap etmək demək olar ki, qeyri-mümkün olduqda, bu halda biz yalnız tələb olunan sahələri çap edə bilərik, xüsusən də isteğe bağlı olanlarımız var.

Şərhlər
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION