我已经在互联网上寻找并尝试解决这个问题。谁能正确回答并解释原因?太感谢了!
看下面的代码。
Integer myNumber; myNumber = 5;
关于第二种说法,下列哪项是正确的?
该语句执行拆箱
该语句执行自动换行。
该语句执行自动装箱。
它会导致错误,因为您无法将原始类型分配给包装类对象。
我已经在互联网上寻找并尝试解决这个问题。谁能正确回答并解释原因?太感谢了!
看下面的代码。
Integer myNumber; myNumber = 5;
关于第二种说法,下列哪项是正确的?
该语句执行拆箱
该语句执行自动换行。
该语句执行自动装箱。
它会导致错误,因为您无法将原始类型分配给包装类对象。
这将被视为自动装箱。它获取int
值5
并将其放入Integer
对象中。
取消装箱将是int myInt = myNumber
因为它将 an 分配Integer
给int
. (请注意,自动装箱与拆箱相反。从技术上讲,拆箱和装箱是相反的。自动装箱是 JVM 为我们处理装箱的时候。手动装箱的方式(如果可以理解为一个词)是myNumber = Integer.valueOf(5);
自动换行似乎是你的教授用来欺骗你的虚构术语。
在这种情况下,某些语言会抛出错误。Java 在大多数类似的情况下都会这样做,但对于原语,它有特殊的例外。
这取决于您使用的 Java 版本。如果是 1.5 之前的版本,第二条语句将导致编译时错误。自动装箱的概念是从 Java 1.5 才引入的。
因此,如果是 Java 1.5 及更高版本,则第二条语句执行自动装箱。