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]