CharSequence有关问题

从字面上看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 详情介绍
  • 除此之外, 这篇博客: CharSequence 详情介绍中的 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 描述的就是一个字符串,以后见到就不要感觉的陌生了。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^