有人可以告诉我如何实现以下目标。 Java不是我的强项,在尝试搜索之后我一直在javas上获取页面总是通过引用传递。
void edit(int[] a){
a = new String[]{"q","r","s","t","u"};
}
int[] x = new int[]{"a","b","c"};
edit(x);
System.out.println(x); // ["q","r","s","t","u"]
我试图实现上述目标,以便在我将其传递给函数后,我可以更改x的指针。
答案 0 :(得分:5)
Java 纯粹传递值。在一个方法中,你不能做任何事情来改变用作方法参数的变量的值。它在Java中是不可能的。
在您的示例中,您可以更改数组的内容,您无法更改引用的数组x
。你这样做是这样的:
void edit(int[] a) {
a[0] = 1;
a[1] = 2;
a[2] = 3;
}
请注意这里的区别:您可以更改x
引用的数组的内容,但不能在x
内更改edit
。因此,例如,您无法更改数组的长度,因为唯一的方法是创建一个新数组并在其上指向x
,而您不能在{{1}内执行此操作}。
其他选择:
edit
返回一个新数组,然后将其分配给edit
。x
,这样您就可以更改有多少元素。