2

要素の少ない文字列配列を作成していました。その時、最初の要素の後にコンマを置いたのにまだコンパイル中であることに気付きました。私はそれがコンパイルされないと思った。次に、サイズを印刷すると、1と表示されます

  String args [] = {request.getParentMessageID() , };
  System.out.println(args.length);

そう

String args [] = {request.getParentMessageID() , };  and String args [] = {request.getParentMessageID()};

どちらも同じように動作します。

なぜこれらが異なっていないのか、なぜそれがコンパイルされるのかを誰かが親切に説明してくれますか?

4

2 に答える 2

5

Trailing commaそのような配列の初期化では、ignored by compiler. これらは一般的に追加されるため、後で配列に何かを追加するときに、コンマを気にせずに要素を追加するだけで済みます。

したがって、それは許可されており、有効な構文です。これは以下にも記載されていJLS - Section#10.6 (Array Initializers)ます: -

末尾のコンマは、配列初期化子の最後の式の後に表示される場合があり、無視されます。

于 2012-11-07T06:47:57.577 に答える
3

Java言語仕様 10.6 に準拠

配列初期化子は、中括弧 { と } で囲まれた式のコンマ区切りリストとして記述されます。

末尾のコンマは、配列初期化子の最後の式の後に表示される場合があり、無視されます。

あなたが今はっきりしていることを願っています。

于 2012-11-07T06:46:41.230 に答える