为什么Java中没有String.Empty?

我知道每次键入字符串文字时"",字符串池中都会引用相同的String对象。

但是,为什么String API不包含public static final String Empty =

"";,所以我可以使用引用String.Empty

至少,这将节省编译时间,因为编译器将知道引用现有的String,而不必检查是否已创建它以进行重用,对吗?我个人认为,字符串文字(尤其是很小的文字)在许多情况下是一种“代码异味”。

那么是否没有String.Empty背后的宏伟设计原因,还是语言创建者根本就没有分享我的观点?

回答:

String.EMPTY是12个字符,并且""是两个,并且它们在运行时都将引用内存中的完全相同的实例。我不完全确定为什么String.EMPTY要节省编译时间,实际上我认为是后者。

特别是考虑到Strings是不可变的,并不是像您首先可以获取一个空的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

回到顶部