【发布时间】:2014-08-28 10:38:33
【问题描述】:
在我正在使用的代码库中,我看到有人在使用这个成语。有人可以为我解释一下吗?
new String("" + number) // `i` is an instance of Integer
对于某些上下文,这大致是该方法的样子:
public String someMethod(String numberString) {
Integer number = new Integer(numberString);
// other stuff happens...
return new String("" + number);
}
【问题讨论】:
-
我会说作者对 Java 缺乏经验。不知道你有什么理由这样做。
-
这只是废话。一旦将数字与字符串连接起来,就不需要将其交给另一个字符串的构造函数。这是非常糟糕的编程,你应该删除它。
-
使用
new String(...)甚至可以避免实习池,因此在内存方面的效率低于"" + number。如果我在这里弄错了,请有人纠正我。 -
@WilliamMorrison 只有字符串字面量才可以,除非您自己更改了代码;)
-
@WilliamMorrison - 我认为编译器不会将
""+someNumber转换为字符串文字,但无论如何转身并使用该值作为字符串构造函数的参数是非常愚蠢的。跨度>