初期化されていない配列代入構文
Java では、宣言内で配列を簡潔に初期化できます。
AClass[] array = {object1, object2};
ただし、中かっこを使用して初期化されていない配列を割り当てると、コンパイラが実行されます。エラー:
AClass[] array; ... array = {object1, object2}; // Error
制限の理由
この制限の具体的な理由は不明です。文法の複雑さ、または Java 構文の一貫性を維持したいという理由が考えられます。
回避策
それほど簡潔ではありませんが、初期化されていない配列を新しいメソッドで初期化できます。演算子を使用して要素を割り当てます明示的に:
AClass[] array; ... array = new AClass[2]; ... array[0] = object1; array[1] = object2;
簡単な例
提供されたコード スニペットでこの回避策を使用すると、配列の初期化ロジックが簡素化されます:
public void selectedPointsToMove(cpVect coord) { if (tab == null) { if (arePointsClose(coord, point1, 10)) tab = new cpVect[]{point1}; else if (arePointsClose(point2, coord, 10)) tab = new cpVect[]{point2}; else tab = new cpVect[]{point1, point2}; } }
以上がJava が中括弧を使用した初期化されていない配列の割り当てを防止するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。