int arr[] = new int[2];
Object obj = arr;
上面的代碼是有效的陣列,但寫引用的整數變量Object類
Object obj[] = new Object[2];
int arr = obj;
是給編譯時間錯誤。爲什麼?我對Java完全陌生;有人可以解釋嗎?
int arr[] = new int[2];
Object obj = arr;
上面的代碼是有效的陣列,但寫引用的整數變量Object類
Object obj[] = new Object[2];
int arr = obj;
是給編譯時間錯誤。爲什麼?我對Java完全陌生;有人可以解釋嗎?
第一個是有效的,因爲在Java中:數組是一個對象。
數組是保存單個類型的值的固定數量的容器對象。
但是,第二個,Object
數組不是int
,這就是它失敗的原因。
全部Arrays
都是Objects
。但所有Objects
不是arrays/ints
。
int arr[]=new int[2];
Object obj=arr;// valid . an int array is also an Object
Object obj[]=new Object[2];
int arr=obj; // an int is not an Object array
在第一種情況下,您創建的數組繼承自Object,因此它按預期工作。
在第二種情況下,Java中的整數是原始類型,您嘗試分配一個對象。原始類型不是一個對象,所以它永遠不會工作。