配列の初期化構文と宣言の制約
Java では、配列を初期化するさまざまな方法がありますが、特定の構文規則に従う必要があります。この記事では、Java コンパイラが宣言されていない配列変数の初期化を制限する理由について説明します。
配列を宣言する場合、中括弧を使用して値で同時に初期化することができます。たとえば、次のコードは有効です:
AClass[] array = {object1, object2};
別のオプションは、new キーワードを使用して配列を作成し、その要素に値を個別に割り当てることです:
AClass[] array = new AClass[2]; ... array[0] = object1; array[1] = object2;
ただし、次のコードは Java コンパイラでは許可されません:
AClass[] array; ... array = {object1, object2};
この制限は、配列を宣言する前に配列を宣言する必要があるという要件から生じます。初期化されました。上記のコードでは、配列変数 array がサイズの指定や初期化を行わずに宣言されています。その結果、Java では中括弧を使用して値を直接割り当てることができません。
この制限に対する Java 設計者の動機は不明です。ただし、このルールにより、言語構文の一貫性が保証され、コード解釈時の潜在的なあいまいさが防止されます。
この制限により追加のコードが導入される場合がありますが、次の構文を使用することで回避できます:
AClass[] array; ... array = new AClass[]{object1, object2};
このメソッドは、初期化せずに配列変数を宣言し、後で new キーワードと中かっこを使用して初期化します。
以上がJava で宣言されていない配列を初期化できないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。