2 panda2008go panda2008go 于 2013.10.28 16:34 提问

JDK1.7中java.lang.String类的toCharArray方法注释:不能用Arrays.copyOf实现?求解惑

JDK1.7重新设计了String类,各个String对象各自维护一个属于自身的char数组,下面是该类中的toCharArray方法的实现源码:
public char[] toCharArray() {
// Cannot use Arrays.copyOf because of class initialization order issues
char result[] = new char[value.length];
System.arraycopy(value, 0, result, 0, value.length);
return result;
}
这个方法中有一段注释,说不能使用Arrays.copyOf方法来实现,请问为什么?在下不太明白注释中的解释,还请高手指教:)。
另外,在String的以char[]为参数的构造方法中却正常地使用了Arrays.copyOf方法。源码如下:
public String(char value[]) {
this.value = Arrays.copyOf(value, value.length);
}
为什么toCharArray不能用Arrays.copyOf来实现?为什么构造方法就可以了呢?请高人解惑呀:)。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!