本文介紹了Java中的數組聲明和初始化的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!
問題描述
-
?
int[] array = new int[]{1,2,3};
?
int[] array = {1,2,3};
?
int[] array;
array = new int[]{1,2,3};
?
int[] array;
array = {1,2,3};
誰能解釋一下為什么最后一個是錯誤的,我們為什么可以做第二個?
推薦答案
作為對您問題的直接回答,情況就是這樣,因為Java語言就是這樣定義的。當我們聲明一個新的字段或局部變量時,我們可以通過表達式(new int[] { 1, 2 3 }
)或數組初始值設定項({1,2,3})對其進行初始化。為以前聲明的字段或局部變量賦值時,只能使用表達式。
我只能推測為什么會存在這種差異,但我認為這與數組被具體化有關,即在運行時,數組知道其元素的類型。這意味著當您想要創建新數組時,需要指定元素類型。在初始化數組時,元素類型很容易獲得,因為數組類型的類型是顯式指定的,但在表達式中不是這樣,至少在一般情況下不是這樣。當然,人們可以嘗試推斷元素的類型,但語言設計者選擇不這樣做。
這篇關于Java中的數組聲明和初始化的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,