Kategorie szkoleń | Egzaminy | Kontakt
  • 1
  • 0
  • 160

W jaki sposób napisać metodę tak, aby podobnie jak metoda  append klasy StringBuilder, mogła być wywoływana kilka razy w jednej instrukcji (sb.append("Ala ").append("ma ").append("kota."))?

Uczestnik szkolenia
  • Zapytał
  • @ Uczestnik szkolenia | 25.06.2013

Odpowiedź (1)

  • 0

Klasa String reprezentuje obiekt, który nie może zmieniać swojej zawartości, zatem wszelakie operacje wykonywane na łańcuchach znaków w oparciu o String oznaczają generowanie nowych obiektów. W związku z tym, do budowania złożonych łańcuchów znaków lepiej jest używać klasy StringBuilder, której instancje reprezentują rozszerzalny bufor znaków, do którego można dodawać kolejne znaki poprzez przeciążoną metodę append. Aby w takim sam sposób przeciążyć metodę napisaną samodzielnie, należy na samym końcu metody zwracać obiekt, na którym ta metoda została wywołana (return this). Dzięki takiemu zabiegowi możliwe będzie ponowne wywołanie tej samej, bądź innej metody takiego obiektu. Warto też wspomnieć o tym, że klasa StringBuilder jest niebezpieczna wątkowo, w związku z czym, zaleca się użycie klasy StringBuffer, która posiada takie same metody jak StringBuilder i jest nieznacznie wolniejsza.

  • Odpowiedział
  • @ | 25.06.2013
  • TRENER ALTKOM AKADEMII