hal*_*lex 8 java string indexof charsequence
我看不出制作String.indexOf
界面的任何缺点CharSequence
.好处是其他类如StringBuffer或StringBuilder也需要实现indexOf方法.
那么有什么设计理由indexOf
应该只是其中的一部分String
吗?
谢谢.
我不知道是什么原因,但我可以给出一个实现类的例子CharSequence
.是的java.nio.CharBuffer
.
从理论上讲,它可以indexOf()
通过调用charAt()
循环来实现.但它不会像用户期望的那样工作.我们无法区分两种情况:角色还没有,角色不存在而且不存在.在第二种情况下,indexOf()
应通过合同返回-1.在第一种情况下,它应该等到所有字节到达.但CharBuffer属于非阻塞IO,因此无法阻止.
我相信这至少解释了其中一个可能的原因.
编辑:
遵循@Pacerier非常有价值的评论我想添加以下内容.恕我直言CharSequence
作为一个非常通用的接口,用于不同的情况.此接口最知名的实现者是String
,StringBuffer
并且StringBuilder
将整个内容保存在允许直接访问任何字符的数据结构中.然而,这在一般情况下是错误的.java.nio.CharBuffer
就是这种情况的一个例子.