CharSequence 詳情介紹

前言

CharSequence是一個接口,比較常見的String、StringBuilder、StringBuffer都實現了這個接口。

當我們看到一個API裏面有CharSequence的時候,它也是可以被其子類代替的,一般用String代替即可。

CharSequence詳情介紹

CharSequence是一個描述字符串結構的接口,在這個接口裏面一般發現有三種常用的子類:

  • Stirng類
public final class String
extends Object
implements Serializable, Comparable<String>, CharSequence
  • StringBuffer類
public final class StringBuffer
extends Object
implements Serializable, CharSequence
  • StringBuilder類
public final class StringBuilder
extends Object
implements Serializable, CharSequence

在這裏插入圖片描述
現在只要有字符串就可以爲CharSequence實例化,CharSequence本身是一個接口,在該接口中有如下方法:

  • 獲取指定索引的字符:public char charAt​(int index);
  • 獲取字符串長度:public int length​();
  • 截取部分字符串:public CharSequence subSequence​(int start, int end);
    範例:字符串截取
    public static void main(String[] args) {
       CharSequence str = "hello world";
       CharSequence sub = str.subSequence(6,11);
       System.out.println(sub);
    }

CharSequence 描述的就是一個字符串,以後見到就不要感覺的陌生了。

Android 中 CharSequence與String的區別

CharSequence 與 String 都能用於定義字符串,但CharSequence是個接口,Sting實現了它。

所以也可以把CharSequence看做String父類

例如:

public void setText(CharSequence string){
...
}
public void setText(String string){
...
}

這2個方法可以同時存在一個類中,因爲它們參數不同,都是setText()的重載。

(另外,在Android中,TextView的setText(CharSequence string)方法是終態的(final),所以子類不能覆蓋,只能採取上述方式,參數設爲String,用重載的方式實現相應功能)

參考:CharSequence詳情介紹

   CharSequence與String的區別

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章