不确定这是否会被投票或关闭......我需要专家意见。
上下文在我们的应用程序中,我们编写了如下代码:
//countryId is an integer, searchCity() expects two String parameters
loadCity(countryName , countryId + "");
如果我改变(我被迫这样做)这样的电话,它会有什么不同吗
loadCity(countryName, String.valueOf(countryId));
或者,
loadCity(countryName, Integer.toString(countryId));
这会对性能有什么影响吗?
答案 0 :(得分:2)
我认为主要区别在于可读性。这里的微型长凳没用。恕我直言String#valueOf
读得最好。
答案 1 :(得分:2)
对于您给出的示例,答案实际上取决于您使用的“整数”的类型。
loadCity(countryName , countryId + "");
对于Integer
对象,这与以下内容相同:
loadCity(countryName, countryId.toString() + "");
对于int
原语,此代码与以下内容相同:
loadCity(countryName, String.valueOf(countryId) + "");
在任何一种情况下,正如ArjunShankar指出的那样,编译器很可能无论如何都优化了你的代码。所以,如果你的问题是“我会回去并重构我的所有代码吗?”,那么我会说“不要冒这个小东西”。但是在未来使用更传统的方法来避免投票。
答案 2 :(得分:1)
String.valueOf
的“表示正好是一个参数的Integer.toString方法返回的表示。”
我会使用String.valueOf
因为你可以使用它而不仅仅是整数,即你不必知道你是否有int,double,bool等....
答案 3 :(得分:0)
他们是一样的......因为 方法String.valueOf(int i)隐式调用Integer.toString(i,10);
答案 4 :(得分:0)
对这两种方法的搜索告诉我所有这些都是等价的:
String.valueOf(countryId)
Integer.toString(countryId)
countryId.toString() //Only if countryId is an Integer
因为他们都打来电话:
Integer.toString(countryId, 10)
唯一的区别是如果你想使用不同的基数,即:
Integer.toString(countryId, radix)
我个人认为countryId.toString()
在使用Integer时读得更好。否则Integer.toString(countryId)
是要走的路。但这只是我个人的意见。在性能方面,您应该使用Integer.toString(countryId, 10)
。
我认为将一个空字符串添加到int以将其转换为String是一种不好的做法。