Предполагается, что списки аннотаций Java допускают добавление запятой после последней записи? - PullRequest
7 голосов
/ 14 июля 2009

Я случайно оставил лишнюю запятую в конце одного из моих списков аннотаций, но она отлично скомпилировалась на моей машине. Например:

@NamedQueries({ @NamedQuery(name="name1",query="FROM Foo"), @NamedQuery(name="name2",query="FROM Bar"), })

Обратите внимание на дополнительную запятую после второй @NamedQuery. Похоже, что он хорошо компилируется на моей машине, но у кого-то еще были проблемы с компиляцией кода на их машине, поэтому я удалил его. Но теперь мне интересно узнать, разрешено ли это, и если да, то какая версия Java это позволяет.

Мне не удалось найти ни одной ссылки на это в Интернете.

Ответы [ 2 ]

6 голосов
/ 14 июля 2009

Я думаю, что в этом случае вы имеете дело с инициализаторами массива , которые допускают дополнительную запятую.

Пример:

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

Это было частью JLS с самого начала.

4 голосов
/ 18 июля 2009

Обратите внимание, что это будет работать в некоторых контекстах обработки аннотаций, а не в других. Если вы используете командную строку Sun APT, это вызовет неприятную ошибку. (Тем не менее, он отлично работает в затмении)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...