我正在尝试理解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(0, size, buf);
}
我遇到了最后一行,它看起来与String类中的任何构造函数都不一样,除了这个:
String(char value[], int offset, int count)
除了这个函数首先使用char[]参数调用外,与Integer.toString()的使用方式不同。我认为改变参数顺序算作方法签名的更改,并且会是方法的不同重载。
为什么这样可以工作,或者我解释有误?