web-dev-qa-db-ja.com

オブジェクトの配列を初期化する方法は?

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

コンパイルするには、fooFoo[]型であると宣言してから、ループします。

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

for (int i = 0; i < 12; i += 1) {
    foos[i] = new Foo();
}
7
Erik Kaplun
Foo[] foos = new Foo[12] ; //declaring array 

for(int i=0;i<12;i++){
   foos[i] = new Foo();  //initializing the array with foo object

}
1
Prabhakaran

あなたはこれを行うことはできません

Foo foos = new Foo[12] ;

への変更

Foo[] foos = new Foo[12];

9ページのドキュメントにタイプミスがありました。また、10ページにタイプミスがあります。

int[] grades = new int[3]

タイプミスが各ページにある場合、私はドキュメント全体を読みません。

1
Roman C

この方法で宣言します。

Foo[] foos = new Foo[12];
0
KhAn SaAb
//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();

}
0
alex.b