2009-07-13 8 views
7

誤って私の注釈リストの最後に余分なカンマが残っていましたが、私のマシン上で正常にコンパイルされました。たとえば:Java注釈リストは最後のエントリの後に余分なカンマを許可するはずですか?

​​

は、第二@NamedQuery後に余分なコンマに注意してください。私のマシンでうまくコンパイルされているようですが、他の誰かが自分のマシン上でコードをコンパイルするのに問題があったので、私はそれを削除しました。しかし、私は今、それが許されるべきかどうかについて興味があります。もしそうなら、どのバージョンのJavaがそれを可能にしますか?

私はオンラインでこれを参照することはできませんでした。

答えて

6

私はこの場合、余分なカンマを許可するArray Initializersを扱っていると思います。

例:

int[] foo = new int[] { 1, 2, 3, };

は、これは最初からJLSの一部となっています。

+0

>配列イニシャライザの最後の式の後に後続のカンマが表示され、無視されることがあります。 (+1) – Tim

+2

Java言語仕様では、注釈配列(http://java.sun.com/docs/books/jls/third_edition/html/interfaces.html#9.7)で後続のカンマを明示的に使用できます。しかし、javacにはエラーをスローするバグがあるようです(「不正な式の開始」)。したがって、安全な側にするためには、注釈で末尾のカンマを使用しないでください。ただし、配列の初期化子では大丈夫です。 –

4

これは、いくつかの注釈処理コンテキストでは有効であり、他の注釈処理コンテキストでは機能しないことに注意してください。 SunのコマンドラインAPTを使用している場合は、厄介なエラーが発生します。

関連する問題