有一段时间我需要一个int作为一个字符串,我一直在写这个:
int a = 22;
String b = a + "";
我想知道在参考
时是否应该考虑到任何差异String b = String.valueOf(a)
//or
String b = Integer.toString(a)
上述方法对于“懒惰铸造”使用有什么好处,还是所有上述方法都是相同的?
答案 0 :(得分:2)
来自String.java
中的源代码,String#valueOf
来电Integer#toString
:
/**
* Returns the string representation of the {@code int} argument.
* <p>
* The representation is exactly the one returned by the
* {@code Integer.toString} method of one argument.
*
* @param i an {@code int}.
* @return a string representation of the {@code int} argument.
* @see java.lang.Integer#toString(int, int)
*/
public static String valueOf(int i) {
return Integer.toString(i);
}
和Integer.toString
是
public static String toString(int i) {
if (i == Integer.MIN_VALUE)
return "-2147483648";
int size = (i < 0) ? stringSize(-i) + 1 : stringSize(i);
char[] buf = new char[size];
getChars(i, size, buf);
return new String(buf, true);
}
出于这个原因,我坚持使用Integer#toString
。
关于String b = a + "":
String
个对象。