arrayで初期化するオブジェクトのデフォルト値を定義する方法はありますか?それらの配列を宣言するときのプリミティブ型が初期化されているのと同様に配列内のオブジェクトをデフォルト値で初期化する - java
:
int[] myIntArray = new int[5]; // we now have an array of 5 zeroes
char[] myCharArray = new char[2]; // an array in which all members are "\u0000"
など
私は私がしました型のオブジェクトの配列を宣言したいと思います同様の方法で自動的に初期化されます。 これは、配列内の各インデックス(デフォルトのコンストラクタを使用)に対してnew myObject()
を実行することを意味します。
私はオンラインで関連するものを見つけることができませんでした。最も近いのはArrays.fill(myArray, new MyObject())
の配列を初期化した後です。実際には1つのオブジェクトを作成してポインタを配列に埋め込みます。配列を調べて各セルを初期化します。
ありがとうございました!
EDIT:これは配列だけでなく、一般的なオブジェクトの宣言と値のデフォルト化/自動化の初期化にも役立ちます。
をこの動作がうまく[JLS](https://docs.oracleで定義しています。 com/javase/specs/jls/se7/html/jls-4.html#jls-4.12.5)。 – Maroun
ソリューションが組み込まれていません。割り当てられたときにJavaが配列をゼロにするのと同じ方法ではありません。これはまさに素晴らしい解決策です: 'Stream.generate(新しい)MyObject())。limit(5).toArray(MyObject [] :: new)' – Cardano
あなたはこれが正確に何をしているのか詳しく説明できますか?ありがとう! –