Java では、特に宣言内で使用される場合、配列の初期化は非常に簡単です。ただし、宣言の外で配列を初期化しようとすると、次のシナリオに示すように、特定の構文の制限が生じます:
AClass[] array = {object1, object2}; // Valid
AClass[] array = new AClass[2]; ... array[0] = object1; array[1] = object2; // Also valid
ただし、宣言の外で次の構文を使用する場合:
AClass[] array; ... array = {object1, object2};
この初期化が許可されていないことを示すエラー メッセージが表示されます。 Java はなぜこれについてこれほど厳格なのでしょうか?
Java 設計者がこの制限に対して特定の文法的または歴史的正当性を持っていた可能性があるため、その理由はやや恣意的です。特定の構文ルールが存在する理由は必ずしも明らかではありませんが、コードを正常に実行するにはそれらのルールに従うことが不可欠です。
不便な場合もありますが、宣言の外で配列を初期化する回避策があります。たとえば、次の構文は機能します:
AClass[] array; ... array = new AClass[]{object1, object2};
したがって、Java は宣言の外で配列の初期化にいくつかの制約を適用する可能性がありますが、望ましい結果を達成するための代替メソッドを提供します。
以上が宣言の外で Java 配列を直接初期化できないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。