我已经遍布互联网试图解决这个问题。任何人都可以正确回答并解释原因吗?非常感谢你!
请查看以下代码。
Integer myNumber; myNumber = 5;
关于第二个陈述,以下哪一项是正确的?
该声明执行拆箱
该语句执行自动包装。
该声明执行自动装箱。
- 醇>
由于您无法分配基本类型,因此会导致错误 到包装类对象。
答案 0 :(得分:5)
这将被视为自动装箱。它需要int
值5
并将其放在Integer
对象中。
取消装箱将为int myInt = myNumber
,因为它会为Integer
分配int
。 (请注意,自动装箱与拆箱相反。从技术上讲,拆箱和装箱是对立的。自动装箱就是当JVM为我们处理装箱时。手动箱的方式(如果可以作为一个单词)是{{ 1}}
自动包装似乎是一个让你的教授欺骗你的术语。
有些语言会在这种情况下引发错误。 Java在大多数类似情况下都会这样做,但对于原语,它有特殊的例外。
答案 1 :(得分:1)
这取决于您使用的Java版本。如果它是1.5之前的任何值,则第二个语句将导致编译时错误。自动装箱的概念仅从Java 1.5引入。
因此,如果它是Java 1.5及更高版本,则第二个语句执行自动装箱。