Charsequence vagy string verem túlcsordulás az orosz

CharSequence egy olyan felület, annak minden következményével együtt. A motorháztető alatt lehet CharBuffer, Segment, String, StringBuffer, StringBuilder. Vagy egyéni megvalósítása.

Ahhoz, hogy megértsék a következő példákat:

SoutString metódus megjeleníti az osztály és az online tartalmak:

Ha azt akarjuk, hogy StringBuilder. majd, amely használja a módszert kell használnunk SoutString átalakítás. Mivel ő elvárja karakterlánc:

Ezen sorok hozzáadásának és az eredmény:

Azt is tudjuk, hogy a húr és StringBuilder munkaeszköz „CharSequence” interfészt, és lehetővé teszi számunkra, hogy írjon a következő:

A következtetés a következő:

Megjegyezzük, hogy a második esetben az eljárás átadták a StringBuilder.

  • Átadhatunk mi eljárás bármely csoportjának, hogy hajtsák végre a felületet.
  • Belül a módszer használható interfészt módszerekkel, például hossza ();

És mi lehet egy módszer, hogy biztonságosan végrehajtani egy adott objektum az akció:

Nem vagyok szakértője a Android, de úgy gondolom, hogy @Barmaley akartam mondani, hogy ha elfogadják a CharSequence String. ez lesz látható, csak szöveget. És ha az objektum megvalósítja további Spannable. akkor még mindig lehetséges, és a festék.

Formálisan persze CharSequence egy olyan felület, de a szemantikai terhelés CharSequence Android általában feltételezik, hogy a karakterkészlet lehet a jövőben néhány stílus - kifejezetten Spannable. Nos, lehetséges például, hogy azt a részét, a vonal más volt a színe, vagy font.

Ennek CharSequence értelme használni, ha azt feltételezzük, hogy részei a vonal kell / lehet adni néhány speciális tulajdonságok - hogy van valami, amit nem lehet elérni egy fej-karakterlánc.

Válaszol október 12 '15 at 8:45

Hirtelen Spannable ugyanazon a felületen. - Sergey Mitrofanov október 12 '15 at 09:46

@SergeyMitrofanov és mi következik ezután? Ha a kategóriában a Gram-náci ferde Java és mondja :) - Barmaley október 12 '15 at 09:51

CharSequence - bármilyen karakter készlet, nem feltétlenül immutabelny egy String. Ez az interfész van definiálva szó 4 módszerrel. Az android végre, mint egy másik sort, és Builder (String, StringBuilder, stb), és a szöveg formázását (átnyúló).

Bármilyen CharSequence lehet alakítani egy string módszer .toString (). de ez lehet a konverziós információk elvesztését. Például ha átalakítani a karakterláncot formázott szöveget (átnyúló), majd kivesszük az egészet a formázást, de ha konvertálni a StringBuilder, hogy elvesztette a képességét, hogy módosítsa ezt a sort. Ezen kívül egy ilyen átalakulás - ez szinte mindig, hogy hozzon létre egy új objektumot.

Jobb kihasználása, ahol elég 4 módszer CharSequence felület, és nem kell a string osztály képességeit, vagy meg kell tartani az objektum tulajdonságait telt átviteli valahol tovább. De óvatosnak kell lennünk. Különösen akkor jobb, ha nem használja az egyenlőségjel () metódus össze tárgyakat, mert nem lehet meghatározott vagy megállapított nem annyira, mint szeretné.

Válaszol október 12 '15 at 14:55

Kapcsolódó cikkek