猿问

静态方法中的 Java 列表查询

据我所知,Java 使用按值传递。但是如果你看下面,我传递了一个列表并向它添加了一个整数。


所需的输出:前后列表[]应该是[]

结果输出:前后列表[]是[20]


还,


如果我在静态函数中初始化列表,我想要的输出就实现了。


我能知道这种现象的原因吗


import java.util.ArrayList;

import java.util.List;


public class NormalTest {


    public static void testMethod(Integer testInt, List<Integer> sampleList) {

        testInt *= 2;

        System.out.println(" Inside testInt :: " + testInt);

        sampleList.add(testInt);

    }


    public static void main(String[] args) {

        Integer testInt = 10;

        List<Integer> sampleList = new ArrayList<>();

        System.out.println(" Before testInt :: " + testInt);

        System.out.println(" Before sampleList :: " + sampleList);

        NormalTest.testMethod(testInt, sampleList);

        System.out.println(" After testInt :: " + testInt);

        System.out.println(" After sampleList :: " + sampleList);

    }

}


慕标5832272
浏览 149回答 1
1回答

ibeautiful

您向作为数组列表的 sampleList 添加了 20。在 Java 中,对象是通过引用传递的。只有像 int 这样的原始数据类型是按值传递的。你得到的结果是正确的
随时随地看视频慕课网APP

相关分类

Java
我要回答