从字面上看CharSequence与字符数组有一些联系,它们实际上有联系吗?CharSequence为一个接口,为什么其中变量并没有定义为public final,而是并没有定义访问权限,也就是默认的defult访问权限,而且在下面的方法中有一些没有方法体但是方法声明中却没有abstract关键字,另一些方法竟然有方法体,而且声明中竟然为public default,双层访问权限?CharSequence作用到底是什么,应该怎么使用?我是看到StringWriter中覆写Writer中的write(char[] cbuf,int off,int len)方法,在经过数组长度判断后调用本类中的,append(CharSeqence csq,int start,int off)方法后产生疑问的,传入的char数组却被Char Sequence接收,我写下CharSequence cs ={'a','b','c'};却编译出错。还有个append(String str,int off,int len)不知道那个write方法末尾是否实际上是调用的它。
不知道你这个问题是否已经解决, 如果还没有解决的话:CharSequence是一个描述字符串结构的接口,在这个接口里面一般发现有三种常用的子类:
public final class String
extends Object
implements Serializable, Comparable<String>, CharSequence
public final class StringBuffer
extends Object
implements Serializable, CharSequence
public final class StringBuilder
extends Object
implements Serializable, CharSequence
现在只要有字符串就可以为CharSequence实例化,CharSequence本身是一个接口,在该接口中有如下方法:
public static void main(String[] args) {
CharSequence str = "hello world";
CharSequence sub = str.subSequence(6,11);
System.out.println(sub);
}
CharSequence 描述的就是一个字符串
,以后见到就不要感觉的陌生了。