我刚刚接触到Java中的自动装箱的概念,我有几个快速的问题来帮助我澄清我的理解。据我所知,当我们声明一个像这样的数组列表时
ArrayList<Integer> myList = new ArrayList<Integer>();
我们仍然可以将基元into放在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相加,然后自动将自身装箱为一个整数对象?我的理解是正确的吗?
https://stackoverflow.com/questions/52807352
复制相似问题