2011-12-17 18 views
3

これらの2つの配列は同じ形式ですか? (テストされていると思われる)そうなら、なぜ両方とも許可されていますか?純粋に下位互換性のためのものですか?ベストプラクティスはどれですか?は、これら2つのJava配列が同じですか?

public static void main(String[] args) 
{ 
    Auto[] array0 = new Auto[] { new Auto(6, "Lemons"), 
           new Auto(4, "Rusty") 
           }; 

    Auto[] array1 = { new Auto(5, "German"), 
         new Auto(8, "Detroit") 
        }; 
} 

答えて

3

後者は、宣言時に配列を初期化するためにのみ使用できます。この場合

public void foo(Auto[] autos) { 
} 

は、あなたがfoo(new Auto[] { new Auto(6, "Lemons") })を行うことができますが、ないfoo({ new Auto(6, "Lemons") })

たとえば、次のような方法があるとします。

1

等価です。

ただし、2番目の構文は、変数を初期化するとき(コンパイラが型を推測できる場合)にのみ使用できます。したがって、最初の構文は、一時的なものを作成したい場合などに便利です。例:

関連する問題