nat*_*ing 6 java arrays array-initialization
我刚刚看了这篇SO帖子:
然而,哥伦比亚大学教授的笔记就是这样做的.见第9页.
Foo foos = new Foo[12] ;
Run Code Online (Sandbox Code Playgroud)
哪种方式是正确的?他们似乎说不同的事情.
特别是,在笔记版本中没有[].
这根本不会用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)