为什么当你设置一个 ArrayList 时,不需要 return 一个值?

Why when you set an ArrayList, there is no need to return a value?

我是 java 的新手,我正在编写一些代码来练习,但有些事情让我感到困惑。我有以下代码:

public class test {
    public static void main(String[]args) {
        int n = 0;
        ArrayList<String> fruits = new ArrayList();
        setList(fruits);
        n =setInt(9);

        // get the values from fruits
        for (String value: fruits) {
            print(value);
        }
    }

    public static void setList( ArrayList list) {
        list.add("pear");
        list.add("apple");
        list.add("pear");
    }

    public static int setInt(int number) {
        number = 3;
        return number;
    }
}

我的问题是为什么为了设置我的 Arraylist() 不需要 return any 值,但是为了设置我的 int 我需要 return something.If 运行 此代码打印了我列表中的所有值,但我预计不会打印任何内容,因为在我的方法 setList 中我没有 return 任何值。如果我的 setInt 没有 return 任何值,n 的值就不会改变,这对我来说很有意义。 谢谢。

在函数中传递参数有不同的方法。大多数初学者开始使用的通常方法是按值传递。另一种方式是通过引用传递。在通过引用传递时,对象本身是传入的,而不是像通过值传递那样的副本。这意味着任何更改都会影响参数并保持不变,即使在调用它之后也是如此。 java 中的所有对象都是通过引用传递的,只有基元是通过值传递的。因此,这就是为什么在使用 arraylist 对象时不必 return。

编辑:实际上,我犯了一个错误。实际发生的是引用本身的副本正在按值传递。看看这个。 Everything in Java is Pass by Value.