如何初始化一个对象数组?

nat*_*ing 6 java arrays array-initialization

我刚刚看了这篇SO帖子:

然而,哥伦比亚大学教授的笔记就是这样做的.见第9页.

Foo foos = new Foo[12] ;
Run Code Online (Sandbox Code Playgroud)

哪种方式是正确的?他们似乎说不同的事情.

特别是,在笔记版本中没有[].

Eri*_*lun 7

这根本不会用Java编译(因为你要将数组类型的值赋给非数组类型的变量Foo):

Foo foos = new Foo[12];
Run Code Online (Sandbox Code Playgroud)

它被javac以下错误拒绝(另请参阅:http://ideone.com/0jh9YE):

test.java:5: error: incompatible types
        Foo foos = new Foo[12];
Run Code Online (Sandbox Code Playgroud)

要让它编译,声明foo为类型Foo[]然后只是循环它:

Foo[] foo = new Foo[12];  # <<<<<<<<<

for (int i = 0; i < 12; i += 1) {
    foos[i] = new Foo();
}
Run Code Online (Sandbox Code Playgroud)