在Java中CharSequence VS字符串?
在Android中编程时,大部分文本值都在CharSequence
。
这是为什么? 什么是好处,以及使用CharSequence
不是String的主要影响是什么?
主要的区别是什么?在使用它们时将会遇到哪些问题?从一个转换到另一个?
字符串是CharSequences,所以你可以使用Strings而不用担心。 Android只是试图通过允许您指定其他CharSequence对象(如StringBuffers)来帮助您。
我相信最好使用CharSequence。 原因是String实现了CharSequence,因此你可以传递一个字符串到CharSequence中,但是你不能将一个CharSequence传递到一个字符串中,因为CharSequence不会实现String。 另外,在Android中, EditText.getText()
方法返回一个Editable,它也实现了CharSequence,并且可以轻松地将其传入一个,但不容易转换为String。 CharSequence处理所有!
这个类图可以帮助您看到Java 7/8中字符串类型的大图。 我不确定是否所有这些都出现在Android中,但总体上下文可能仍然对您有用。
另外,请注意对已接受答案的评论。 CharSequence
接口被改装到现有的类结构中,所以有一些重要的细节( equals()
和hashCode()
)。 请注意,在类/接口上标记的各种Java(1,2,4和5)版本 - 多年来都有一些流失。 理想情况下, CharSequence
将从一开始就位,但这就是生活。