在Java中将CharSequence转换为String

3
假设我想在Java中将CharSequence转换为String。
选项1和2哪个更好,为什么?
答:两个选项都可以将CharSequence转换为String。但是,如果您需要进行多次操作或字符串连接,则选项1更有效率,因为它不需要创建新的String对象。然而,如果您只需要单个String对象,则选项2更简洁易懂。
CharSequence source = "some text";
String someText1 = (String)source; // 1
String someText2 = source.toString(); // 2
2个回答

9
最好的选择在第三个门后面:
String someText = String.valueOf(source);

因为这样可以处理 source 为空的情况。

1
只是一个提示,它会通过将 someText 的值设置为字符串 "null" 来 "处理" 这种情况 - 我个人认为这不是很优雅,但至少很容易检查(只要您不期望 CharSequence 具有字面值 "null",我希望您不会)。 - rook218

2

#1对于除了String之外的CharSequence实现甚至都不起作用,因此#2才是您唯一的选择。


1
不是你唯一的选择 - String.valueOf() 可用且更优。 - user949300
嗯,唯一的区别是它在空值上的行为不同,这可能是需要的也可能不是需要的。我更喜欢在空值上抛出异常,就像 toString 函数一样。 - Louis Wasserman

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接