2014-10-04 98 views
0

我對下面2行有點困惑。對象聲明數組

MyClass myobj[]; 
myobj = new MyClass[numberVariable]; 

我希望在第1行是這樣的:

MyClass[] myobj; 

但是代碼的作品並沒有錯誤。

是什麼解釋?

+1

做同樣的事情的不同方式。 – Tirath 2014-10-04 15:33:28

回答

3

作爲JLS狀態

的[]可能顯示爲在聲明的開頭所述類型的部分,或作爲說明符用於特定變量,或兩者的一部分。

因此,即使這是可能的

float[][] f[][], g[][][], h[]; 

這相當於

float[][][][] f; 
float[][][][][] g; 
float[][][] h; 

,這是更具可讀性,不是嗎?

+3

它變得更糟。 'public static int [] foo()[] {return new int [10] [10];}'也是有效的... – 2014-10-04 15:49:42

0

兩者在Java中都是有效的語法,但MyClass[] myobj對我更有意義,因爲您聲明的是MyClass類型的數組。