【发布时间】:2011-03-27 21:48:08
【问题描述】:
我了解每次输入字符串文字""时,字符串池中都会引用同一个String对象。
但是为什么 String API 不包含 public static final String Empty = "";,所以我可以使用对 String.Empty 的引用?
它至少会节省编译时间,因为编译器会知道引用现有的字符串,而不必检查它是否已经被创建以供重用,对吧?而且我个人认为字符串文字的扩散,尤其是微小的文字,在很多情况下是一种“代码味道”。
那么在没有 String.Empty 的背后有一个宏大的设计原因,还是语言创建者根本不同意我的观点?
【问题讨论】:
-
Aidanc:我认为他的意思是你做
outputBlah = ""之类的事情,他可能更喜欢something == String.Empty而不是something.Length > 0(你跳过一个空检查。) -
@Aidanc - 他正在寻找像 Collections.EMPTY_SET 这样的“空成员”,而不是检查字符串“emptiness”的函数。
-
@Aidanc:激发这个灵感的实际上是 'TextBox.setText("");'。
-
有一个
String.isEmpty()函数...你为什么要String.EMPTY? -
String.isEmpty()不返回空字符串。