据我所知,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); }}
1 回答

ibeautiful
TA贡献1993条经验 获得超6个赞
您向作为数组列表的 sampleList 添加了 20。在 Java 中,对象是通过引用传递的。只有像 int 这样的原始数据类型是按值传递的。
你得到的结果是正确的
添加回答
举报
0/150
提交
取消