'class [] arrayname'と 'class arrayname []'の違い[重複]

Sep 25 2020

違いがわかりません

String[] arrayName = {/*some data here*/};

そして

String arrayName[] = {/*some data here*/};

タイプ(String[])の後と配列名(String arrayName[])の後に角括弧を配置することに違いはありますか?
もしそうなら、何?

回答

4 Mureinik Sep 25 2020 at 12:25

どちらの宣言も同じ結果になります。違いは文体だけです。そうは言っても、ほとんどのJavaスタイルガイドでは、変数名ではなく、型名に角かっこを付けることを推奨しています。

String[] arrayName = {/*some data here*/};
1 GiorgiTsiklauri Sep 25 2020 at 12:28

それらはほとんど同じですが、意味上の問題が少しあります。

沿って:

String[] array;
  1. arrayString [](文字列配列)のタイプであるという名前の変数を宣言します。
  2. このコードでは、同じString[]タイプ(String[] array1, array2;)で他の変数をインラインで宣言できます。

沿って:

String array[];
  1. 配列オブジェクトを参照する変数を宣言します。その要素はjava.lang.String;の型でなければなりません。
  2. あなたはString array[], name, surname;実際に書くのにまともなコードではないようなものを持つことができますが、Javaセマンティクスはこれをブロックしません。