我刚刚看了这个SO帖子:
然而,哥伦比亚教授的笔记是按照下面的方式做到的。见第 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();
}
Foo[] foos = new Foo[12] ; //declaring array
for(int i=0;i<12;i++){
foos[i] = new Foo(); //initializing the array with foo object
}
你不能这样做
Foo foos = new Foo[12] ;
改成
Foo[] foos = new Foo[12];
第 9 页的文档中有错字。第 10 页也有错字
int[] grades = new int[3]
如果每一页都有错别字,我不会阅读整个文件。
以这种方式声明。
Foo[] foos = new Foo[12];
//declaring array of 12 Foo elements in Java8 style
Foo[] foos = Stream.generate(Foo::new).limit(12).toArray(Foo[]::new);
// instead of
Foo[] foos = new Foo[12];
for(int i=0;i<12;i++){
foos[i] = new Foo();
}