为什么Java中没有String.Empty?
我知道每次键入字符串文字时""
,字符串池中都会引用相同的String对象。
但是,为什么String API不包含public static final String Empty =
"";,所以我可以使用引用String.Empty
?
至少,这将节省编译时间,因为编译器将知道引用现有的String,而不必检查是否已创建它以进行重用,对吗?我个人认为,字符串文字(尤其是很小的文字)在许多情况下是一种“代码异味”。
那么是否没有String.Empty背后的宏伟设计原因,还是语言创建者根本就没有分享我的观点?
回答:
String.EMPTY
是12个字符,并且""
是两个,并且它们在运行时都将引用内存中的完全相同的实例。我不完全确定为什么String.EMPTY
要节省编译时间,实际上我认为是后者。
特别是考虑到String
s是不可变的,并不是像您首先可以获取一个空的String并对其执行一些操作-最好使用a
StringBuilder
(或者StringBuffer
如果您希望是线程安全的)将其转换为String。
从您的评论到问题:
真正激发灵感的是
TextBox.setText("");
我相信在您的适当课程中提供一个常量是完全合法的:
private static final String EMPTY_STRING = "";
然后在您的代码中引用它为
TextBox.setText(EMPTY_STRING);
这样,至少您可以清楚地知道需要一个空字符串,而不是忘记在IDE或类似内容中填写该字符串。
以上是 为什么Java中没有String.Empty? 的全部内容, 来源链接: utcz.com/qa/429828.html