我刚看了这个
SO Post:
但是,Columbia professor’s notes就是这样做的.见第9页.
Foo foos = new Foo[12] ;
哪种方式是正确的?他们似乎说不同的事情.
特别是,在笔记版本中没有[].
解决方法
这根本不会用Java编译(因为你要将数组类型的值赋给非数组类型Foo的变量):
Foo foos = new Foo[12];
它被javac拒绝并出现以下错误(另请参阅:http://ideone.com/0jh9YE):
test.java:5: error: incompatible types Foo foos = new Foo[12];
要进行编译,请将foo声明为Foo []类型,然后循环遍历它:
Foo[] foo = new Foo[12]; # <<<<<<<<< for (int i = 0; i < 12; i += 1) { foos[i] = new Foo(); }