Java toString metodu
toString
Java-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ə və 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.Object
Order
Trade
Employee
toString
toString
package.class@hashCode
toString()
toString()
Country
Socket
ServerSocket
toString
toString
toString
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ədirtoString
. Adi toString()
sinif java.util.Date
formatlaş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 Date
və 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 üçüntoString()
çıxış formatını sənədləşdirmək yaxşı fikirdir . toString
Mə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ə StringBuilder
və metodundan istifadə etmək də yoldur. Varsayılan olaraq, həm Eclipse, həm də Netbeans birləşmə operatoru ilə yaradır. append()
toString
toString
@Override annotasiyasından istifadə
Java-da metodu ləğv etmək@Override
dildə ə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 etmirtoString
və 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ə Collection
belə ArrayList
və 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əritoString
.
-
toString
Çıxışı uzunluğuna əsasən bir neçə sətirdə və ya birində çap edin . -
Hər hansı anlaşılmazlığın qarşısını almaq üçün təqdimata tam uyğun sinif adlarını daxil
toString
edinpackage.class
. -
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 . -
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. -
Ə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.
-
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.
GO TO FULL VERSION