ホームページ >Java >&#&チュートリアル >Java が中括弧を使用した初期化されていない配列の割り当てを防止するのはなぜですか?

Java が中括弧を使用した初期化されていない配列の割り当てを防止するのはなぜですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-12-10 10:16:11419ブラウズ

Why Does Java Prevent Uninitialized Array Assignment with Curly Braces?

初期化されていない配列代入構文

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。