Ich habe versehentlich ein zusätzliches Komma am Ende einer meiner Annotationslisten hinterlassen, aber es kompiliert auf meinem Computer einwandfrei. Zum Beispiel:Soll Java-Annotationslisten nach dem letzten Eintrag ein zusätzliches Komma zulassen?
@NamedQueries({ @NamedQuery(name="name1",query="FROM Foo"), @NamedQuery(name="name2",query="FROM Bar"), })
Beachten Sie das zusätzliche Komma nach dem zweiten @NamedQuery. Es scheint auf meinem Rechner gut zu kompilieren, aber jemand anderes hatte Probleme, den Code auf seinem Rechner zu kompilieren, also habe ich ihn entfernt. Aber ich bin jetzt neugierig, ob es erlaubt sein soll, und wenn ja, welche Version von Java erlaubt es.
Ich konnte nirgendwo online eine Referenz finden.
> Ein abschließendes Komma kann nach dem letzten Ausdruck in einem Array-Initialisierer erscheinen und wird ignoriert. (+1) – Tim
Die Java-Sprachspezifikation erlaubt explizit ein abschließendes Komma in Annotations-Arrays (http://java.sun.com/docs/books/jls/third_edition/html/interfaces.html#9.7). Es scheint jedoch einen Fehler in javac zu geben, der einen Fehler auslöst ("illegaler Start des Ausdrucks"). Um auf der sicheren Seite zu sein, sollten Sie keine abschließenden Kommas in Annotationen verwenden, während sie in Array-Initialisierern recht gut sind. –