Java的Varargs方法修改调用者的数组而不是它自己的副本?

bluesky1年前 ⋅ 153 阅读

ChatGPT的回答仅作参考:

在Java中,Varargs方法无法直接修改调用者的数组,因为Varargs参数实际上是一个数组的副本。如果要修改调用者的数组,可以将数组作为参数传递给方法,并在方法内部对数组进行修改。以下是一个示例:

```java
public class Main {
    public static void main(String[] args) {
        int[] array = {1, 2, 3};
        modifyArray(array);
        System.out.println(Arrays.toString(array)); // 输出 [2, 4, 6]
    }

    public static void modifyArray(int[] array) {
        for (int i = 0; i < array.length; i++) {
            array[i] *= 2;
        }
    }
}
```

在上面的示例中,我们定义了一个`modifyArray`方法,它接受一个`int`类型的数组作为参数,并在方法内部对数组进行修改。在`main`方法中,我们创建了一个数组`array`并将其传递给`modifyArray`方法。在`modifyArray`方法中,我们通过遍历数组并将每个元素乘以2来修改数组。最后,我们在`main`方法中打印修改后的数组,可以看到调用者的数组已经被修改。

全部评论: 0

    相关推荐