Integer扩展Number在这个意义上,Number成为int的超类。我想存储一个int数组到一个Number数组中。 我有下面的代码。但是,它似乎不允许在java中。如何将int数组存储到数组中?
int[] b = {1,2};
Number[] a = b;
为什么java不允许我在数组数组中存储int数组,我该如何存储它?
Integer扩展Number在这个意义上,Number成为int的超类。我想存储一个int数组到一个Number数组中。 我有下面的代码。但是,它似乎不允许在java中。如何将int数组存储到数组中?
int[] b = {1,2};
Number[] a = b;
为什么java不允许我在数组数组中存储int数组,我该如何存储它?
你不能直接这样做,因为“基元数组”不是“数组对象”。数组不会出现自动装箱。
但是你可以使用ArrayUtils.toObject(b)
(来自commons-lang)。这将创建包装型(Integer
)的一个新的数组,并与来自原始数组中的值填充:
int[] a = {1,2};
Number[] n = ArrayUtils.toObject(a);
由于int和整数是两个独立的类型。第一个是基本类型,第二个是对象类型。 Integer扩展了Number,但是int甚至不是一个类,因此它不能扩展任何东西。
要注意Integer是对象,int是原始类型。 – Nettogrof
要做到这一点,使int数组变成一个整数数组:'Integer [] b = {1,2};'那么你可以'Number [] a = b;' – bittersweetryan
“整数扩展数字”但int不会:) –