更准确地说,int是Integer类的一部分(一个简化版或其他什么东西),还是完全不同的东西?
我知道int是值类型,而Integer是引用类型,但是int是否仍然继承自Object呢?
(我假设在这方面,int、long、boolean等都是相似的。只是为了方便选择int)
更准确地说,int是Integer类的一部分(一个简化版或其他什么东西),还是完全不同的东西?
我知道int是值类型,而Integer是引用类型,但是int是否仍然继承自Object呢?
(我假设在这方面,int、long、boolean等都是相似的。只是为了方便选择int)
Java中的基本类型不是对象,也没有继承自Object。
自从Java 1.5引入了int和Integer(以及其他类型)之间的自动装箱,就可以使用它们之间的转换。
因为int不是对象,所以不能用作泛型类型参数,例如list<T>
中的T
。
从"原始数据类型"中可以得知:"原始类型是内置到语言中的特殊数据类型;它们不是从类创建的对象。" 这也就意味着,int
并没有以任何方式继承自java.lang.Object,因为只有"从类创建的对象"才会这样做。考虑以下代码:
int x = 5;
为使名为x
的东西从Object继承,那个东西需要有一个类型。请注意,我区分x
本身和它所命名的东西。 x
有一个类型,即int
,但所命名的东西是值为5的内容,它本身没有类型。它仅仅是一系列代表整数值“5”的位序列。相比之下,请考虑:
java.lang.Number y = new java.lang.Integer(5);
在这种情况下,y
的类型是Number,而命名为y
的那个东西的类型是Integer。命名为y
的那个东西是一个对象。它有一个独特的类型,与y
或其他任何东西无关。
原始类型不是对象,但它们直接存储在需要它们的任何上下文中。如果需要将它们视为对象,则可以将其装箱为整数。
Object
的方法,能否实际返回int
?如果可以,那么在调用环境中如何从Object
中获取int
? - Chesser