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
是所有类型的父级,因此整数类型 iObj
是 obj
的子级,因此为 false。
In short, child can be auto- boxed to parent but the vice-versa is not possible
所有这些行都是正确的首先你创建对象然后你创建整数并将值赋给那个整数对象这行代码是完全正确的
我正在为明天的数据结构考试而学习,我需要知道以下代码中哪些行是正确的,哪些行不正确以及为什么
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
是所有类型的父级,因此整数类型 iObj
是 obj
的子级,因此为 false。
In short, child can be auto- boxed to parent but the vice-versa is not possible
所有这些行都是正确的首先你创建对象然后你创建整数并将值赋给那个整数对象这行代码是完全正确的