String Chaining
Eyni bir String dəyişəni üçün bir neçə metodu zəncirvari şəkildə bir sətirdə çağırmaq mümkündür.
String result = "AniMaL ".trim().toLowerCase().replace('a', 'A');
System.out.println(result); // AnimAl
Yuxarıda birinci sətirdə 4 obyekt yaradılır.
String immutable olduğundan aşağıdakı nümunədə a və b referanslarının bir-biri ilə əlaqəsi yoxdur, ona görə də çap edilərkən fərqli nəticələr alınır. Amma buna bənzər nümunəni StringBuilder üçün tətbiq etdikdə fərqli nəticə alacağıq. Bir qədər aşağıda buna baxacağıq.
String a = "abc";
String b = a.toUpperCase();
b = b.replace("B", "2").replace('C', '3');
System.out.println(a); // abc
System.out.println(b); // A23
StringBuilder Chaining
Biz String metodlarını zəncirvari şəkildə çağırdıqda (chaining) nəticə olaraq geriyə yeni String qaytarır. Amma StringBuilder chaining olunan referansın öz dəyərini dəyişir və geriyə həmin referansı qaytarır, yəni yeni StringBuilder obyekti yaradılmır.
StringBuilder a = new StringBuilder("abc");
StringBuilder b = a.append("de");
b = b.append("f").append('g');
System.out.println(a); // abcdefg
System.out.println(b); // abcdefg
Burada cəmi bir StringBuilder obyekti var, a və b referansları hər ikisi eyni obyektə işarə edirlər (refer).
[topics lang=az]
