Java 数据结构问题 boxing/unboxing

Java DataStructures question boxing/unboxing

我正在为明天的数据结构考试而学习,我需要知道以下代码中哪些行是正确的,哪些行不正确以及为什么

Object  obj = new Integer(42);
Integer iObj = 43;
iObj = obj;
HelloWorld.java:19: error: incompatible types: Object cannot be converted to Integer
        iObj = obj;
               ^
1 error

上面的失败是因为iObj和obj的编译时类型不匹配。这是强类型语言的标志。 Javascript 中的类似代码可以正常工作。

您的问题的答案如下:

 Object  obj = new Integer(42); //auto boxing  // true
 Integer iObj = 43; //direct intialization   //true
 iObj = obj  // false
 iObj = (Integer) obj; // manual boxing 

iObj = obj is false 因为 obj 是对 Object 的引用,而 iObj 是对 Interger 的引用。 Object 是所有类型的父级,因此整数类型 iObjobj 的子级,因此为 false。

 In short, child can be auto- boxed to parent but the vice-versa is not possible

所有这些行都是正确的首先你创建对象然后你创建整数并将值赋给那个整数对象这行代码是完全正确的