2014-10-04 196 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类型的数组。