我是 java 的新手,没有指针的引用传递让我有点困惑。我写了一个作业函数,要求我返回用户输入的长度,并将使用输入分配给传入的数组,当方法退出时用户输入数组丢失,这是错误的。
public static int readArray(char[] intoArray)
{
char[] capture = captureInputAsCharArray(); //User input comes back as char[]
System.arraycopy(intoArray,0, capture, 0, capture.length);
return capture.length;
}
public static main(String[] args)
{
size = readArray(arrItem7); // item 7
System.out.println(size);
printOneInLine(arrItem7); // prints individual elements of array
}
最佳答案
因为你有向后传递给 System.arraycopy()
的参数。
http://download.oracle.com/javase/6/docs/api/java/lang/System.html
public static void arraycopy(Object src,
int srcPos,
Object dest,
int destPos,
int length)
交换 intoArray
和 capture
:
System.arraycopy(capture,0, intoArray, 0, capture.length);
关于退出方法时 Java 数组丢失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7990344/