在跟字符串相关的方法中,我们常常会看到参数类型是CharSequence,比如
boolean | contains(CharSequence s)
Returns true if and only if this string contains the specified sequence of char values.
|
String | replace(CharSequence target, CharSequence replacement)
Replaces each substring of this string that matches the literal target sequence with the specified literal replacement sequence.
|
之类。通常我们都把它等价于String类型,将参数使用toString()等方法转换为String再传入。实际上,CharSequence是一个接口,String、StringBuilder和StringBuffer都实现了CharSequence接口,所以以后再调用含有CharSequence类型参数的方法时,可以直接将StringBuilder或StringBuffer直接传入进去,减少一次转换。另外,有些工具类中跟字符串相关的类型,也会实现这个接口,便于减少方法调用直接传参。