问题描述
- 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来实现?为什么构造方法就可以了呢?请高人解惑呀:)。
时间: 2025-01-08 04:13:47