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不會:) –