Integer是int的封装类型,是引用类型。那为什么不能作为引用类型作为参数传递呢
public class StatisticsTest {
public void setInt(Integer i) {
i+=1;
}
public static void main(String[] args) {
Integer a = 1;
StatisticsTest test = new StatisticsTest();
test.setInt(a);
System.out.println("a="+a);
}
}
控制台打印结果 a=1
通过打印结果发现a的值并没有发生变化。
查看Integer的源码会发现
private final int value;
值被定义为final的,也就是一旦赋值,将不能改变。导致这个值没法改变
网友评论