AStringis-aCharSequence。Java库中有许多方法可以接受,CharSequence
因此它们的操作范围更广。某些类具有String
方法(例如Writer.write(String)
),并且还Appendable
使用等效CharSequence
方法(例如Writer.append(CharSequence)
)实现。
如果我正在编写一个委托给此类的类,并且需要一些文本输入,则可以将输入选择为a String
或a
CharSequence
。通过为客户提供更多选择,选择后一种将使类更灵活。但是我看不到有太多这样做的代码:文本参数几乎总是a String
而不是a
CharSequence
。使用不利CharSequence
吗?有表现上的打击吗?还是仅仅是程序员的天性或无知才导致使用String
而不是CharSequence
?
比较
class XMLWriter {
private final Writer writer;
// more stuff here
public void writeComment(String text) {
writer.write("<!-- ");
writer.write(text);
writer.write(" -->");
}
}
与
class XMLWriter {
private final Writer writer;
// more stuff here
public void writeComment(CharSequence text) {
writer.write("<!-- ");
writer.append(text);
writer.write(" -->");
}
}
引用CharSequence
Javadoc:
此接口不会完善
equals
和hashCode
方法的常规协定。因此,测试两个实现CharSequence
相等的对象的结果通常是不确定的。每个对象都可以由不同的类实现,并且不能保证每个类都能够测试其实例与另一个实例的相等性。因此,将任意CharSequence
实例用作集合中的元素或用作映射中的键是不合适的。
因此,在使用CharSequnce代替String之前,IMO我们必须三思。
描述 (Description) java.util.regex.Pattern.split(CharSequence input)方法将给定的输入序列围绕此模式的匹配进行拆分。 声明 (Declaration) 以下是java.util.regex.Pattern.split(CharSequence input)方法的声明。 public String[] split(CharSequence
问题内容: 在Android中进行编程时,大多数文本值应在中。 这是为什么?好处是什么?使用over 的主要影响是什么? 主要区别是什么?在使用它们并将它们从一个转换到另一个时会遇到什么问题? 问题答案: 字符串是CharSequences,因此您可以只使用String而不用担心。Android只是通过允许您还指定其他CharSequence对象(例如StringBuffers)来尝试提供帮助。
问题内容: 我读了以前的这篇文章。除了实现和那是一个字符序列的事实之外,谁能说出和String 之间的确切区别是什么?例如: 当“你好”被分配到会发生什么,再而三? 问题答案: 一般差异 除了以外,还有几个类可以实现接口。其中有 用于可变长度的字符序列,可以对其进行修改 用于固定长度的低级字符序列,可以对其进行修改 任何接受a的方法都可以在所有这些方法上同样有效地工作。任何仅接受a的方法都将需要转
问题内容: 最近,我一直在Golang中努力处理SQL NULL值。在尝试使用和未能成功解组JSON对象后。 使用字符串指针的解决方案似乎可以与Decode()和nil值完美配合。那么和之间有什么区别?只是零检查吗? 问题答案: SQL具有与Golang不同的空值。 如果您查看的定义,那么您将获得: 如您所见,这是一种表示来自SQL的空字符串(对应于“ NULL”)的方法。另一方面,nil 是指向
描述 (Description) java.util.regex.Pattern.split(CharSequence input, int limit)方法将给定的输入序列分割为此模式的匹配。 声明 (Declaration) 以下是java.util.regex.Pattern.split(CharSequence input, int limit)方法的声明。 public String[]
问题内容: 声明 Array 和 Dictionary的 更好方法,我都使用了: 对我来说,编码方面的速度非常快,但实际上两者在编译器和性能方面有何不同,我们应该遵循哪一个? 问题答案: 从Swift上的iOS开发者库… Swift数组的类型完整写为Array ,其中Element是允许数组存储的值的类型。您还可以将简写形式的数组类型写为[Element]。尽管 这两种形式在功能上是相同的 ,但