私はこれを見ました 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();
}