【发布时间】:2018-10-14 21:42:04
【问题描述】:
我刚刚了解了 Java 中自动装箱的概念,我有几个简单的问题可以帮助我澄清我的理解。据我了解,当我们声明一个数组列表时,例如
ArrayList<Integer> myList = new ArrayList<Integer>();
我们仍然可以将原始整数放入 myList 中,因为原始整数将自动包装到 Integer 对象中。我猜这意味着如果我尝试向这个 ArrayList 添加一个Integer 对象,那么由于我添加了“正确”类型,所以不会有任何自动装箱?也就是说,我猜是命令
myList.add(new Integer(2));
不使用任何自动装箱。同样,我猜想从这个 ArrayList 中检索元素并将它们存储在它们的包装器中不需要自动装箱,因为我没有将它们放在它们的原语中?又名:
Integer a = myList.get(0);
不拆箱?据我了解,当我尝试将原语混合到图片中时会发生拆箱:
int b = 4;
Integer c = a + b;
在这种情况下,我认为 a 会自动拆箱成一个 int 原语,加上 int b 然后自动将自己装箱成一个整数对象?我的理解是否正确?
【问题讨论】:
-
是的,这一切看起来都是正确的。
-
您是否有一个确切的问题,或者您想要一个是/否的答案?
标签: java autoboxing