经常看到java中很多函数的api参数是CharSequence,但是给他传入String类型,也可以,不会报错。这是为什么呢?
String 和 CharSequence有什么区别?
其实,String 继承于CharSequence,也就是说String也是CharSequence类型。
CharSequence是一个接口,它只包括length(), charAt(int index), subSequence(int start, int end)这几个API接口。除了String实现了CharSequence之外,StringBuffer和StringBuilder也实现了CharSequence接口。需要说明的是,CharSequence就是字符序列,String, StringBuilder和StringBuffer本质上都是通过字符数组实现的!